bonktools 2.3.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,36 @@
1
+ -----BEGIN CERTIFICATE-----
2
+ MIIGTDCCBDSgAwIBAgIQOXpmzCdWNi4NqofKbqvjsTANBgkqhkiG9w0BAQwFADBf
3
+ MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTYwNAYDVQQD
4
+ Ey1TZWN0aWdvIFB1YmxpYyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gUm9vdCBSNDYw
5
+ HhcNMjEwMzIyMDAwMDAwWhcNMzYwMzIxMjM1OTU5WjBgMQswCQYDVQQGEwJHQjEY
6
+ MBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTcwNQYDVQQDEy5TZWN0aWdvIFB1Ymxp
7
+ YyBTZXJ2ZXIgQXV0aGVudGljYXRpb24gQ0EgRFYgUjM2MIIBojANBgkqhkiG9w0B
8
+ AQEFAAOCAY8AMIIBigKCAYEAljZf2HIz7+SPUPQCQObZYcrxLTHYdf1ZtMRe7Yeq
9
+ RPSwygz16qJ9cAWtWNTcuICc++p8Dct7zNGxCpqmEtqifO7NvuB5dEVexXn9RFFH
10
+ 12Hm+NtPRQgXIFjx6MSJcNWuVO3XGE57L1mHlcQYj+g4hny90aFh2SCZCDEVkAja
11
+ EMMfYPKuCjHuuF+bzHFb/9gV8P9+ekcHENF2nR1efGWSKwnfG5RawlkaQDpRtZTm
12
+ M64TIsv/r7cyFO4nSjs1jLdXYdz5q3a4L0NoabZfbdxVb+CUEHfB0bpulZQtH1Rv
13
+ 38e/lIdP7OTTIlZh6OYL6NhxP8So0/sht/4J9mqIGxRFc0/pC8suja+wcIUna0HB
14
+ pXKfXTKpzgis+zmXDL06ASJf5E4A2/m+Hp6b84sfPAwQ766rI65mh50S0Di9E3Pn
15
+ 2WcaJc+PILsBmYpgtmgWTR9eV9otfKRUBfzHUHcVgarub/XluEpRlTtZudU5xbFN
16
+ xx/DgMrXLUAPaI60fZ6wA+PTAgMBAAGjggGBMIIBfTAfBgNVHSMEGDAWgBRWc1hk
17
+ lfmSGrASKgRieaFAFYghSTAdBgNVHQ4EFgQUaMASFhgOr872h6YyV6NGUV3LBycw
18
+ DgYDVR0PAQH/BAQDAgGGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYDVR0lBBYwFAYI
19
+ KwYBBQUHAwEGCCsGAQUFBwMCMBsGA1UdIAQUMBIwBgYEVR0gADAIBgZngQwBAgEw
20
+ VAYDVR0fBE0wSzBJoEegRYZDaHR0cDovL2NybC5zZWN0aWdvLmNvbS9TZWN0aWdv
21
+ UHVibGljU2VydmVyQXV0aGVudGljYXRpb25Sb290UjQ2LmNybDCBhAYIKwYBBQUH
22
+ AQEEeDB2ME8GCCsGAQUFBzAChkNodHRwOi8vY3J0LnNlY3RpZ28uY29tL1NlY3Rp
23
+ Z29QdWJsaWNTZXJ2ZXJBdXRoZW50aWNhdGlvblJvb3RSNDYucDdjMCMGCCsGAQUF
24
+ BzABhhdodHRwOi8vb2NzcC5zZWN0aWdvLmNvbTANBgkqhkiG9w0BAQwFAAOCAgEA
25
+ YtOC9Fy+TqECFw40IospI92kLGgoSZGPOSQXMBqmsGWZUQ7rux7cj1du6d9rD6C8
26
+ ze1B2eQjkrGkIL/OF1s7vSmgYVafsRoZd/IHUrkoQvX8FZwUsmPu7amgBfaY3g+d
27
+ q1x0jNGKb6I6Bzdl6LgMD9qxp+3i7GQOnd9J8LFSietY6Z4jUBzVoOoz8iAU84OF
28
+ h2HhAuiPw1ai0VnY38RTI+8kepGWVfGxfBWzwH9uIjeooIeaosVFvE8cmYUB4TSH
29
+ 5dUyD0jHct2+8ceKEtIoFU/FfHq/mDaVnvcDCZXtIgitdMFQdMZaVehmObyhRdDD
30
+ 4NQCs0gaI9AAgFj4L9QtkARzhQLNyRf87Kln+YU0lgCGr9HLg3rGO8q+Y4ppLsOd
31
+ unQZ6ZxPNGIfOApbPVf5hCe58EZwiWdHIMn9lPP6+F404y8NNugbQixBber+x536
32
+ WrZhFZLjEkhp7fFXf9r32rNPfb74X/U90Bdy4lzp3+X1ukh1BuMxA/EEhDoTOS3l
33
+ 7ABvc7BYSQubQ2490OcdkIzUh3ZwDrakMVrbaTxUM2p24N6dB+ns2zptWCva6jzW
34
+ r8IWKIMxzxLPv5Kt3ePKcUdvkBU/smqujSczTzzSjIoR5QqQA6lN1ZRSnuHIWCvh
35
+ JEltkYnTAH41QJ6SAWO66GrrUESwN/cgZzL4JLEqz1Y=
36
+ -----END CERTIFICATE-----
@@ -0,0 +1,63 @@
1
+ const { createBot, LOG_LEVELS } = require("bonkbot");
2
+ // const { createBot, LOG_LEVELS } = require("../src/index");
3
+
4
+
5
+ // Create a bot instance
6
+ const bot = createBot({
7
+ account: {
8
+ username: "bonkbot",
9
+ guest: true,
10
+ },
11
+ PROTOCOL_VERSION: 49,
12
+ logLevel: LOG_LEVELS.WARN,
13
+ });
14
+
15
+ // Handle ready event
16
+ bot.events.on("ready", async () => {
17
+ console.log("Bot is ready!");
18
+
19
+ // Connect to the server
20
+ await bot.connect()
21
+
22
+ // Create a room after connecting
23
+ await bot.createRoom({
24
+ roomname: "BonkBot's Room",
25
+ maxplayers: 2,
26
+ roompassword: "",
27
+ hidden: false
28
+ });
29
+ });
30
+
31
+ // Handle connect event
32
+ bot.events.on("ready", function() {
33
+ bot.events.on("ROOM_SHARE_LINK", () => {
34
+ console.log(`Bot created room!\nURL: ${bot.getShareLink()}`);
35
+ })
36
+
37
+ // Set up packet handler
38
+ bot.events.on("PACKET", function(packet) {
39
+ bot.autoHandlePacket(packet);
40
+ });
41
+
42
+ // Handle chat messages
43
+ bot.events.on("CHAT_MESSAGE", function(message) {
44
+ console.log(message.player.username + ": " + message.message);
45
+
46
+ // Check for players command
47
+ if (message.message === "!players") {
48
+ var players = bot.getAllPlayers(true);
49
+ var playerNames = [];
50
+
51
+ for (var i = 0; i < players.length; i++) {
52
+ playerNames.push(players[i].username);
53
+ }
54
+
55
+ bot.chat("Players online (" + players.length + "): " + playerNames.join(", "));
56
+ }
57
+ });
58
+ });
59
+
60
+ // Initialize the bot
61
+ bot.init().catch((error) => {
62
+ console.error("Failed to initialize bot:", error);
63
+ });
@@ -0,0 +1,127 @@
1
+ const { createBot, LOG_LEVELS } = require("bonkbot");
2
+
3
+ // Create a bot instance
4
+ const bot = createBot({
5
+ account: {
6
+ username: "bonkbot",
7
+ guest: true,
8
+ },
9
+ PROTOCOL_VERSION: 49,
10
+ logLevel: LOG_LEVELS.WARN,
11
+ });
12
+
13
+ // Handle ready event
14
+ bot.events.on("ready", async () => {
15
+ console.log("Bot is ready!");
16
+
17
+ try {
18
+ // Find a room by name
19
+ const roomInfo = await bot.getAddressFromRoomName("test");
20
+ // const roomInfo = await bot.getAddressFromUrl("https://bonk.io/533118qkpuw");
21
+
22
+
23
+ console.log(`Found room: ${roomInfo.roomname}`);
24
+
25
+ // Set the room address
26
+ bot.setAddress(roomInfo);
27
+
28
+ // Connect to the server
29
+ await bot.connect();
30
+
31
+ // Join the room
32
+ await bot.joinRoom();
33
+
34
+ // with a password
35
+
36
+ // await bot.joinRoom({
37
+ // password: "32",
38
+ // });
39
+
40
+ } catch (error) {
41
+ console.error("Failed to find or connect to room:", error);
42
+ }
43
+ });
44
+
45
+ // Handle connect event
46
+ bot.events.on("connect", () => {
47
+ console.log("Bot connected to server!");
48
+
49
+ bot.events.on("JOIN", () => {
50
+ bot.chat("Connected to the room!")
51
+ })
52
+
53
+ bot.events.on("COUNTDOWN", (msg) => {
54
+ bot.chat(`${msg.countdown}!`);
55
+ })
56
+
57
+ bot.events.on("GAME_START", () => {
58
+ bot.chat(`start!`);
59
+ })
60
+
61
+ bot.events.on("GAMEMODE_CHANGE", (msg) => {
62
+ bot.chat(`Gamemode changed to ${msg.mode} with engine ${msg.engine}`);
63
+ })
64
+
65
+ // Set up packet handler
66
+ bot.events.on("PACKET", (packet) => {
67
+ bot.autoHandlePacket(packet);
68
+
69
+ // Ignore spammy packets
70
+ if (packet.type === "TIMESYNC" || packet.type === "PLAYER_PINGS") {
71
+ return;
72
+ }
73
+
74
+ console.log("Received packet:", packet);
75
+ });
76
+
77
+ // Handle chat messages
78
+ bot.events.on("CHAT_MESSAGE", (message) => {
79
+ console.log(`${message.player.username}: ${message.message}`);
80
+
81
+ // Respond to commands
82
+ switch (message.message) {
83
+ case "!ping":
84
+ bot.chat("Pong!");
85
+ break;
86
+
87
+ case "!help":
88
+ bot.chat("Available commands: !ping, !help, !players, !host");
89
+ break;
90
+
91
+ case "!players":
92
+ const players = bot.getAllPlayers();
93
+ bot.chat(`Players online: ${players.map((p) => p.username).join(", ")}`);
94
+ break;
95
+
96
+ case "!host":
97
+ bot.chat(`The host is ${bot.getHost().username}`);
98
+ break;
99
+ }
100
+ });
101
+
102
+ // Handle player join events
103
+ bot.events.on("PLAYER_JOIN", (event) => {
104
+ const player = event.player;
105
+ if (player) {
106
+ console.log(`${player.username} joined the room!`);
107
+ }
108
+ });
109
+
110
+ // Handle player leave events
111
+ bot.events.on("PLAYER_LEAVE", (event) => {
112
+ const player = event.player;
113
+ if (player) {
114
+ console.log(`${player.username} left the room!`);
115
+ }
116
+ });
117
+
118
+ // Handle disconnection
119
+ bot.events.on("disconnect", () => {
120
+ console.log("Bot disconnected from the room!");
121
+ });
122
+ });
123
+
124
+ // Initialize the bot
125
+ bot.init().catch((error) => {
126
+ console.error("Failed to initialize bot:", error);
127
+ });