Compare commits
No commits in common. "main" and "v5.1.1" have entirely different histories.
169 changed files with 40555 additions and 5994 deletions
15
.gitignore
vendored
15
.gitignore
vendored
|
@ -1,10 +1,11 @@
|
|||
node_modules
|
||||
logs
|
||||
midis
|
||||
config.yml
|
||||
.git
|
||||
.env
|
||||
src/commands/kick.js
|
||||
src/modules/exploits.js
|
||||
logs/*
|
||||
src/data/filter.json
|
||||
data/filter.json
|
||||
prototyping-crap
|
||||
src/data/trustedPlayers.js
|
||||
data/trustedPlayers.js
|
||||
src/commands/kick.js
|
||||
prototyping-crap/java/build/
|
||||
prototying-crap/java/.gradle/
|
||||
.git
|
||||
|
|
12
README.md
12
README.md
|
@ -0,0 +1,12 @@
|
|||
exploits module was gitignored to prevent exploit leaks so the bot will not being able to run some commands without it
|
||||
please make a file called exploits.js in modules and add this
|
||||
```js
|
||||
function exploits (bot, options, context) {
|
||||
bot.exploits = {
|
||||
hoe: ''
|
||||
}
|
||||
}
|
||||
module.exports = exploits;
|
||||
```
|
||||
also src/commands/kick.js was gitignored so exploits wont be leaked
|
||||
v5.0.8 is not done yet!
|
20
chess_cuz_why_the_hell_not.md
Normal file
20
chess_cuz_why_the_hell_not.md
Normal file
|
@ -0,0 +1,20 @@
|
|||
Chess is a game played on an 8x8 checkered board, called a chessboard. To play chess, you move your pieces on the board. The goal is to checkmate the other player's king. You need to do it with your pieces.
|
||||
Rooks: horizontal and vertical
|
||||
Knights (horses): L shape (one square horizontal, two vertical) or (two squares horizontal, one vertical). Only piece that can jump over others.
|
||||
Bishops: diagonal
|
||||
Queens: Rook or bishop only
|
||||
King: one square anywhere (not into check)
|
||||
Pawns: one square, first move two squares, captures diagonally
|
||||
|
||||
Promotion: When pawns reach the last rank, they can promote to any piece other than pawn and kings.
|
||||
Castling: Move your king 2 squares towards the rook and move the rook next to the king on the other side. Neither should have moved in the game and the king can't be in check or go through it.
|
||||
En Passant: When your pawn is on the 5th rank away from your back rank and a pawn moves 2 forward and lands next to yours, you may capture the pawn like it only moved 1 square. It can only be done on the very next move.
|
||||
|
||||
|
||||
|
||||
Check: The king is under attack from one of the opponents pieces, and he must move out of check on the next move. The king never gets captured.
|
||||
Checkmate: The king is in check and can't escape. It results in a win for the checkmating player.
|
||||
Stalemate: The king can't move except into check. It results in a draw.
|
||||
|
||||
Board Setup: The board is oriented so that there is a light square in the bottom right corner of both players. The rooks go on the corners, then the knights go next to them, then the bishops, then the queen and king. The queen always goes on her own color. On the next row up the pawns go on every square.
|
||||
White always makes the first move.
|
184
filter.js
Normal file
184
filter.js
Normal file
|
@ -0,0 +1,184 @@
|
|||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const filterList = require('../../filter.json');
|
||||
function filter (bot, options) {
|
||||
function join () {
|
||||
for (const players of filterList.players) {
|
||||
// if (bot.players?.find((player) => player.profile.name === players.username) === undefined) return undefined
|
||||
bot.on('message', message => {
|
||||
const stringmessage = bot.getMessageAsPrismarine(message)?.toString()
|
||||
if (
|
||||
stringmessage.startsWith(`${players.username} joined the game`)
|
||||
) {
|
||||
setTimeout(() => {
|
||||
bot.core.run(`/essentials:mute ${players.username} 10y Filtered by FNFBoyfriendBot`);
|
||||
bot.core.run(`/execute at @e run deop ${players.username}`);
|
||||
bot.core.run(`/execute at @e run gamemode spectator ${players.username}`);
|
||||
bot.core.run(`tellraw ${players.username} ${JSON.stringify(bot.exploits.invalidstring)}`)
|
||||
}, 1000)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
/* function login () {
|
||||
for (const players of filterList.players) {
|
||||
if (bot.players?.find((player) => player.profile.name === players.username) === undefined) return undefined
|
||||
|
||||
// } else {
|
||||
/* bot.on('login', data => {
|
||||
|
||||
if (bot.players.find((player) => player.profile.name === players.username).profile.username) {
|
||||
bot.core.run(`/essentials:mute ${bot?.players?.find((player) => player?.profile?.name === players?.username)?.profile?.username} 10y Filtered by FNFBoyfriendBot`);
|
||||
bot.core.run(`/execute at @e run ${players.username}`);
|
||||
bot.core.run(`/execute at @e run gamemode spectator ${players.username}`);
|
||||
// bot.core.run(`tellraw ${players.username} ${JSON.stringify(bot.exploits.invalidstring)}`)
|
||||
}
|
||||
})
|
||||
}
|
||||
}*/
|
||||
function message () {
|
||||
for (const players of filterList.players) {
|
||||
// if (bot.players?.find((player) => player.profile.name === players.username) === undefined) return undefined
|
||||
bot.on("parsed_message", (data) => {
|
||||
if (data.type !== "minecraft:chat") return;
|
||||
// console.log(Object.keys(data))
|
||||
if (data.sender.profile.name === players.username) {
|
||||
// bot.core.run(`/essentials:mute ${bot.players.find((player) => player?.profile?.name === players?.username)?.uuid} 10y`);
|
||||
setTimeout(() => {
|
||||
bot.core.run(`/essentials:mute ${players.username}`)
|
||||
}, 1000)
|
||||
}
|
||||
})
|
||||
}
|
||||
/*
|
||||
console.log((data.sender))
|
||||
{
|
||||
uuid: '85f5b68d-a567-3877-9701-3cd7404bc9d9',
|
||||
profile: { name: 'Parker2991', properties: [ [Object] ] },
|
||||
chatSession: undefined,
|
||||
gamemode: 1,
|
||||
listed: true,
|
||||
latency: 60,
|
||||
displayName: { extra: [ [Object], [Object] ], text: '' }
|
||||
}
|
||||
*/
|
||||
}
|
||||
function mute () {
|
||||
for (const players of filterList.players) {
|
||||
// if (bot.players?.find((player) => player.profile.name === players.username) === undefined) return undefined
|
||||
|
||||
bot.on('message', (message) => {
|
||||
const stringmessage = bot.getMessageAsPrismarine(message)?.toString()
|
||||
if (
|
||||
stringmessage.startsWith(`${bot.players.find((player) => player?.profile?.name === players?.username)?.profile?.name}: /essentials:mute ${bot.players.find((player) => player?.profile?.name === players?.username)?.profile?.name}`)
|
||||
||
|
||||
stringmessage === `${bot.players.find((player) => player?.profile?.name === players?.username)?.profile?.name}: /essentials:mute ${bot.players.find((player) => player?.profile?.name === players?.username)?.profile?.name}`
|
||||
||
|
||||
stringmessage === `${bot.players.find((player) => player?.profile?.name === players?.username)?.profile?.name}: /emute `
|
||||
||
|
||||
stringmessage === `${bot.players.find((player) => player?.profile?.name === players?.username)?.profile?.name}: /mute ${bot?.players?.find((player) => player?.profile?.name === players?.username)?.uuid}`
|
||||
||
|
||||
stringmessage.startsWith(`${bot.players.find((player) => player?.profile?.name === players?.username)?.profile?.name}: /emute ${bot.players.find((player) => player?.profile?.name === players?.username)?.profile?.name}`)
|
||||
||
|
||||
stringmessage.startsWith(`${bot.players.find((player) => player?.profile?.name === players?.username)?.profile?.name}: /mute ${bot.players.find((player) => player?.profile?.name === players?.username)?.profile?.name}`)
|
||||
/* ||
|
||||
stringmessage.includes(`${players.username}: `)*/
|
||||
) {
|
||||
setTimeout(() => {
|
||||
bot.core.run(`/essentials:mute ${bot.players.find((player) => player?.profile?.name === players?.username)?.uuid} 10y`);
|
||||
bot.core.run(`tellraw ${players.username} ${JSON.stringify(bot.exploits.invalidstring)}`)
|
||||
}, 1000)
|
||||
}
|
||||
})
|
||||
// }
|
||||
}
|
||||
}
|
||||
function gamemode () {
|
||||
for (const players of filterList.players) {
|
||||
// if (bot.players?.find((player) => player.profile.name === players.username) === undefined) return undefined
|
||||
bot.on('message', (message) => {
|
||||
const stringmessage = bot.getMessageAsPrismarine(message)?.toString();
|
||||
if (
|
||||
stringmessage.startsWith(`${bot.players.find((player) => player?.profile?.name === players?.username)?.profile?.name}: /gamemode creative`)
|
||||
||
|
||||
stringmessage.startsWith(`${bot.players.find((player) => player?.profile?.name === players?.username)?.profile?.name}: /minecraft:gamemode creative`)
|
||||
||
|
||||
stringmessage.startsWith(`${bot.players.find((player) => player?.profile?.name === players?.username)?.profile?.name}: /gmc`)
|
||||
||
|
||||
stringmessage.startsWith(`${bot.players.find((player) => player?.profile?.name === players?.username)?.profile?.name}: /egmc`)
|
||||
||
|
||||
stringmessage.startsWith(`${bot.players.find((player) => player?.profile?.name === players?.username)?.profile?.name}: /essentials:gamemode creative`)
|
||||
||
|
||||
stringmessage.startsWith(`${bot.players.find((player) => player?.profile?.name === players?.username)?.profile?.name}: /essentials:gm creative`)
|
||||
||
|
||||
stringmessage.startsWith(`${bot.players.find((player) => player?.profile?.name === players?.username)?.profile?.name}: /essentials:gmc creative`)
|
||||
||
|
||||
stringmessage.startsWith(`: /execute`) + stringmessage.endsWith(`gamemode creative ${players.username}`)
|
||||
||
|
||||
stringmessage.startsWith(`${players.username}: /egmc creative`)
|
||||
||
|
||||
stringmessage.startsWith(`${players.username}: /gmc creative`)
|
||||
||
|
||||
stringmessage.startsWith(`${players.username}: /egm creative`)
|
||||
||
|
||||
stringmessage.startsWith(`${players.username}: /egm creative`)
|
||||
||
|
||||
bot?.players?.find((player) => player?.profile?.name === players?.username)?.gamemode !== 3
|
||||
) {
|
||||
setTimeout(() => {
|
||||
// bot.core.run(`gamemode spectator bot?.players?.find((player) => player?.profile?.name === players?.username)?.profile.username}`)
|
||||
bot.core.run(`/gamemode spectator ${players.username}`);
|
||||
bot.core.run(`tellraw ${players.username} ${JSON.stringify(bot.exploits.invalidstring)}`)
|
||||
bot.core.run(`/execute at @e run deop ${players.username}`);
|
||||
}, 1000)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
function deop () {
|
||||
for (const players of filterList.players) {
|
||||
//if (bot.players?.find((player) => player.profile.name === players.username) === undefined) return undefined
|
||||
bot.on('message', (message) => {
|
||||
const stringmessage = bot.getMessageAsPrismarine(message)?.toString();
|
||||
if (
|
||||
stringmessage.startsWith(`${players.username}: /minecraft:op`)
|
||||
||
|
||||
stringmessage.startsWith(`${players.username}: /op ${players.username}`)
|
||||
||
|
||||
stringmessage.startsWith(`${players.username}: /minecraft:op ${players.username}`)
|
||||
||
|
||||
stringmessage.startsWith(`: /execute`) + stringmessage.endsWith(`op ${players.username}`)
|
||||
||
|
||||
stringmessage.includes(`${players.username}: `)
|
||||
) {
|
||||
setTimeout(() => {
|
||||
bot.core.run(`execute at @e run deop ${players.username}`)
|
||||
bot.core.run(`tellraw ${players.username} ${JSON.stringify(bot.exploits.invalidstring)}`)
|
||||
}, 1000)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
if (bot.options.isSavage) return
|
||||
join();
|
||||
gamemode();
|
||||
mute();
|
||||
// login();
|
||||
deop();
|
||||
message();
|
||||
}
|
||||
module.exports = filter;
|
||||
// stringmessage.startsWith(`${players.username}: /essentials:mute ${players.username}`)
|
||||
// stringmessage.startsWith(`${players.username}: /emute Parker2991`)
|
||||
// [chipmunkbot§: Made chipmunkbot a server operator]
|
||||
// stringmessage.startsWith(`${players.username}: /minecraft:op`)
|
||||
// stringmessage.startsWith(`${players.username}: /op ${players.username}`)
|
||||
// stringmessage.startsWith(`: /execute`) + stringmessage.endsWith(`op ${players.username}`)
|
||||
// stringmessage.startsWith(`${players.username}: /gmc`)
|
||||
// stringmessage.startsWith(`${players.username}: /egmc`)
|
||||
// stringmessage.startsWith(`${players.username}: /essentials:gamemode creative`)
|
||||
// stringmessage.startsWith(`${players.username}: /essentials:gm creative`)
|
||||
// stringmessage.startsWith(`${players.username}: /essentials:gmc creative`)
|
||||
// stringmessage.startsWith(`: /execute`) + stringmessage.endsWith(`gamemode creative ${players.username}`)
|
||||
|
||||
|
1
filter.json
Normal file
1
filter.json
Normal file
|
@ -0,0 +1 @@
|
|||
{"players":[{"username":"Bu11D0g1337","ignorecase":false},{"username":"lluiiis__pb__","ignorecase":false}]}
|
10
hashGen.js
Normal file
10
hashGen.js
Normal file
|
@ -0,0 +1,10 @@
|
|||
function hashGen () {
|
||||
const characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890`~!@#$%^&*()-_+={}[]\\|;:,.<>/?';
|
||||
let username = '';
|
||||
for (let i = 0; i < 16; i++ ) {
|
||||
const randomIndex = Math.floor(Math.random() * characters.length);
|
||||
username += characters[randomIndex];
|
||||
}
|
||||
return username;
|
||||
}
|
||||
console.log(hashGen())
|
6540
languages/en_ud.json
Normal file
6540
languages/en_ud.json
Normal file
File diff suppressed because it is too large
Load diff
6542
languages/en_us.json
Normal file
6542
languages/en_us.json
Normal file
File diff suppressed because it is too large
Load diff
6540
languages/enp.json
Normal file
6540
languages/enp.json
Normal file
File diff suppressed because it is too large
Load diff
6539
languages/enws.json
Normal file
6539
languages/enws.json
Normal file
File diff suppressed because it is too large
Load diff
6540
languages/ja_jp.json
Normal file
6540
languages/ja_jp.json
Normal file
File diff suppressed because it is too large
Load diff
5
main.sh
Normal file
5
main.sh
Normal file
|
@ -0,0 +1,5 @@
|
|||
while true; do
|
||||
# echo "Starting FNFBoyfriendBot...."
|
||||
node --max-old-space-size=1000 src/index.js
|
||||
sleep 1
|
||||
done
|
56
old/chat_command_handler.js
Normal file
56
old/chat_command_handler.js
Normal file
|
@ -0,0 +1,56 @@
|
|||
const CommandSource = require("../CommandModules/command_source");
|
||||
const CommandError = require("../CommandModules/command_error");
|
||||
//can i change the var?
|
||||
const { execSync } = require('child_process');
|
||||
function chat_command_handler(bot) {
|
||||
let ratelimit = 0
|
||||
bot.on("parsed_message", (data) => {
|
||||
if (data.type !== "minecraft:chat") return;
|
||||
|
||||
const prefixes = bot.Commands.prefixes;
|
||||
|
||||
prefixes.map((prefix) => {
|
||||
const plainMessage = bot
|
||||
.getMessageAsPrismarine(data.contents)
|
||||
?.toString();
|
||||
if (!plainMessage.startsWith(prefix)) return;
|
||||
|
||||
const command = plainMessage.substring(prefix.length); // if the prefixes are the same length just make it 1 or the length
|
||||
/*
|
||||
lifes sus
|
||||
*/
|
||||
const source = new CommandSource(data.sender,{ discord: false, console: false });
|
||||
bot.sendFeedback = (message) => {
|
||||
|
||||
if (bot.options.useChat) {
|
||||
bot.tellraw([message]);
|
||||
} else {
|
||||
bot.tellraw(["", message]);
|
||||
}
|
||||
|
||||
};
|
||||
bot.sendError = (message) => {
|
||||
bot.sendFeedback([{ text: '', color: `red` }, message], false)
|
||||
}
|
||||
try{
|
||||
|
||||
ratelimit++
|
||||
setTimeout(() => {
|
||||
ratelimit--
|
||||
}, 1000)
|
||||
if (ratelimit > bot.Commands.ratelimit) { // ,.
|
||||
bot.sendFeedback({text:'You are using commands too fast!',color:'dark_red'})
|
||||
// this isn't blocking running the command you know that right?
|
||||
} else {
|
||||
bot.commandManager.executeString(source, command);
|
||||
}//oh real
|
||||
|
||||
//can i change the variable name so its name isnt confusing?
|
||||
}catch(e){
|
||||
console.log(e.stack)
|
||||
|
||||
};
|
||||
});
|
||||
})//
|
||||
}
|
||||
module.exports = chat_command_handler;
|
7
old/chatdelay.js
Normal file
7
old/chatdelay.js
Normal file
|
@ -0,0 +1,7 @@
|
|||
function chatDelay (bot,options, ms){
|
||||
bot.chatDelay = function delay(ms) {
|
||||
return new Promise((resolve) => setTimeout(resolve, ms));
|
||||
}
|
||||
|
||||
}
|
||||
module.exports = chatDelay;
|
150
old/evaljs.js
Normal file
150
old/evaljs.js
Normal file
|
@ -0,0 +1,150 @@
|
|||
const ivm = require('isolated-vm');//new ivm.Isolate(options)
|
||||
const CommandError = require('../CommandModules/command_error')
|
||||
// const isolate = new ivm.isolate({ memoryLimit: 128 });
|
||||
const { stylize } = require('../util/eval_colors')
|
||||
// 32 seems fine
|
||||
|
||||
module.exports = {
|
||||
name: 'evaljs',
|
||||
trustLevel: -1,
|
||||
aliases:['evaljsisolatedvm', 'evaljsnew', 'evaljsivm', 'eval', 'evalivm', 'evalisolatedvm', 'evaljsnew'],
|
||||
description:['run code in a vm note: amcforum members had a sh##fit over this command'],
|
||||
usage:["re fucking doing"],
|
||||
async execute (context) {
|
||||
const bot = context.bot
|
||||
const source = context.source
|
||||
const args = context.arguments
|
||||
const util = require('util')
|
||||
const ChatMessage = require('prismarine-chat')(bot.options.version)
|
||||
const cmd = {
|
||||
translate: '[%s] ',
|
||||
bold: false,
|
||||
color: 'white',
|
||||
with: [
|
||||
{ color: 'dark_green', text: 'EvalJS'},
|
||||
]
|
||||
}
|
||||
// throw new CommandError('temp disabled')
|
||||
/* bot.tellraw(selector, { text: util.inspect(bot.vm.run(args.slice(1).join(' ')), { stylize }).substring(0, 32000) })
|
||||
} catch (err) {
|
||||
bot.tellraw(selector, { text: util.inspect(err).replaceAll('runner', 'Parker2991'), color: 'red' })
|
||||
*/
|
||||
//let hash = bot.hash
|
||||
const options = {
|
||||
timeout: 1000//?
|
||||
}
|
||||
|
||||
|
||||
let isolate = new ivm.Isolate({ memoryLimit: 50, options, global, cachedData: true })
|
||||
//let cachedData = true
|
||||
if (!args && !args[0] && !args[1] && !args[2]) return
|
||||
switch (args[1]) {
|
||||
case `run`:
|
||||
try {//context.eval()
|
||||
/*
|
||||
let kitty
|
||||
const output = test.compileScript(args.slice(1).join(' '))// ivm.createContext(args.slice(1).join(' '))
|
||||
const realoutput = output.then(result => {
|
||||
kitty = result.run({
|
||||
context: amonger,
|
||||
})
|
||||
}).catch(reason => {
|
||||
console.error(reason) //
|
||||
})
|
||||
*/
|
||||
// old coding
|
||||
|
||||
// YOU KILLED THE TERMINAL LMFAO
|
||||
|
||||
//let context = await isolate.createContext({ inspector: true });
|
||||
//let script = await isolate.compileScript('for(;;)debugger;', { filename: 'example.js' });
|
||||
// await script.run(context);
|
||||
try {
|
||||
let nerd = "";
|
||||
const script = await args.slice(2).join(' '); // Ensure script is a string
|
||||
const cOmtext = await isolate.createContextSync({options});
|
||||
if (script.includes('for(;;);')){
|
||||
bot.sendFeedback({text:'no now fuck off with that script',color:'dark_red'})
|
||||
return
|
||||
}
|
||||
else if (script.includes('Array') || script.includes('\u0041rray') || script.includes('\u0065val') || script.includes('.repeat') || script.includes('concat')){
|
||||
bot.sendFeedback({text:'no now fuck off with that script',color:'dark_red'})
|
||||
return
|
||||
} else if(script.includes('eval')){
|
||||
source.sendFeedback({text:'no',color:'dark_red'})
|
||||
return
|
||||
}else if(script.includes('.fill')){
|
||||
bot.sendFeedback({text:'screw off',color:'dark_red'})
|
||||
return
|
||||
}
|
||||
(async () => {
|
||||
try {
|
||||
let result = await (await cOmtext).evalSync(script, options, {
|
||||
timeout: 1000
|
||||
})
|
||||
nerd = result;
|
||||
if(!bot.options.Core.enabled){
|
||||
bot.chat(ChatMessage.fromNotch([cmd, { text: util.inspect(result, { stylize }) }]).toMotd().replaceAll('§', '&'))
|
||||
}else{
|
||||
|
||||
bot.sendFeedback([cmd, { text: util.inspect(result, { stylize }) }]);
|
||||
}
|
||||
} catch (reason) {
|
||||
nerd = reason;
|
||||
if(!bot.options.Core.enabled){
|
||||
bot.chat(ChatMessage.fromNotch([cmd, { text: String(reason.stack), color: 'white' }]).toMotd().replaceAll('§', '&'))
|
||||
}else{
|
||||
bot.sendFeedback([cmd, { text: String(reason.stack), color: 'white' }]);
|
||||
console.log(`AAA at ${reason}\n${reason.stack}`);
|
||||
}
|
||||
}
|
||||
})();
|
||||
} catch (reason) {
|
||||
if(!bot.options.Core.enabled){
|
||||
bot.chat(ChatMessage.fromNotch([cmd, { text: String("UwU OwO ewwor" + reason.stack), color: 'white' }]).toMotd().replaceAll('§', '&'))
|
||||
}else{
|
||||
source.sendFeedback([cmd, { text: String("UwU OwO ewwor" + reason.stack), color: 'white' }]);
|
||||
console.log(`AAA at ${reason}\n${reason.stack}`);
|
||||
}
|
||||
}
|
||||
// credits to chatgpt because im lazy mabe mabe? idfk again ty
|
||||
//
|
||||
break//
|
||||
} catch (e) {
|
||||
// ral
|
||||
}
|
||||
case 'reset':
|
||||
|
||||
isolate = null
|
||||
isolate = new ivm.Isolate({ memoryLimit: 50 }) // 32 seems fine
|
||||
if(!bot.options.Core.enabled){
|
||||
bot.chat(ChatMessage.fromNotch([cmd, { text: 'Successfully reset the eval context', color: 'green' }]).toMotd().replaceAll('§', '&'))
|
||||
}else{
|
||||
bot.sendFeedback([cmd, { text: 'Successfully reset the eval context', color: 'green' }])
|
||||
}
|
||||
break
|
||||
default:
|
||||
if(!bot.options.Core.enabled){
|
||||
bot.chat(ChatMessage.fromNotch([cmd, { text: 'Successfully reset the eval context', color: 'green' }]).toMotd().replaceAll('§', '&'))
|
||||
}else{
|
||||
bot.sendFeedback([cmd, { text: 'Invalid option!', color: 'dark_red' }])
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
this is typescript
|
||||
|
||||
import ivm from 'isolated-vm';
|
||||
|
||||
const code = `(function() { return 'Hello, Isolate!'; })()`;
|
||||
|
||||
const isolate = new ivm.Isolate({ memoryLimit: 8 }); // mego bites
|
||||
const script = isolate.compileScriptSync(code);
|
||||
const context = isolate.createContextSync();
|
||||
//this
|
||||
// Prints "Hello, Isolate!"
|
||||
console.log(script.runSync(context));
|
||||
|
||||
*/
|
32
old/logger.js
Normal file
32
old/logger.js
Normal file
|
@ -0,0 +1,32 @@
|
|||
function logger (bot,options) {
|
||||
const { createGzip } = require('node:zlib');
|
||||
const gzip = createGzip();
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const currentDate = new Date();
|
||||
const timestamp = `${currentDate.getFullYear()}-${(currentDate.getMonth() + 1).toString().padStart(2, '0')}-${currentDate.getDate().toString().padStart(2, '0')}`;
|
||||
const logFolder = path.join(__dirname, '../../logs'); // idfk
|
||||
const logFileName = `${timestamp}.txt`;//why is it not trying to find the folder tf
|
||||
// i am having a stroke from this
|
||||
if (!bot.Console.filelogging) return
|
||||
try {
|
||||
if (!fs.existsSync(logFolder)) { // existsSync might be for files and that's why it's breaking? | make the folder if it doesn't exist before writing to it
|
||||
fs.mkdirSync(logFolder);//idfk
|
||||
}//oh wait
|
||||
} catch (e) {} // prevent it from throwing a ohio exception mabe mabe
|
||||
|
||||
const logFilePath = path.join(logFolder, logFileName);
|
||||
const logStream = fs.createWriteStream(logFilePath, { flags: 'a' });
|
||||
// const toWrite = `${message}`//wtf
|
||||
if (!bot.Console.filelogging) return // instead of using bot why not just use options cause you already defined it
|
||||
|
||||
// if (toFile) logStream.write(toWrite + '\n');
|
||||
|
||||
bot.console.filelogger = function (message) {//.
|
||||
logStream.write(message + '\n'); // toFile is not defined
|
||||
};
|
||||
//if (toConsole) console.log(toWrite);
|
||||
|
||||
|
||||
};
|
||||
module.exports = logger
|
2640
package-lock.json
generated
2640
package-lock.json
generated
File diff suppressed because it is too large
Load diff
23
package.json
23
package.json
|
@ -1,25 +1,20 @@
|
|||
{
|
||||
"dependencies": {
|
||||
"@vitalets/google-translate-api": "^9.2.0",
|
||||
"color-convert": "^2.0.1",
|
||||
"cowsay": "^1.6.0",
|
||||
"cowsay2": "^2.0.4",
|
||||
"discord.js": "^14.16.3",
|
||||
"java-parser": "^2.3.2",
|
||||
"discord.js": "^14.15.2",
|
||||
"dockerode": "^4.0.2",
|
||||
"dotenv": "^16.4.5",
|
||||
"final-stream": "^2.0.4",
|
||||
"isolated-vm": "^4.7.2",
|
||||
"js-yaml": "^4.1.0",
|
||||
"json-stringify": "^1.0.0",
|
||||
"json5": "^2.2.3",
|
||||
"jvm": "^0.5.3",
|
||||
"man-db": "^1.0.3",
|
||||
"minecraft-data": "^3.69.0",
|
||||
"minecraft-protocol": "^1.47.0",
|
||||
"mojangson": "^2.0.4",
|
||||
"node-gyp": "^10.2.0",
|
||||
"prismarine-auth": "^2.2.0",
|
||||
"moment-timezone": "^0.5.45",
|
||||
"prettier": "^3.2.5",
|
||||
"prismarine-chat": "^1.10.1",
|
||||
"prismarine-registry": "^1.7.0",
|
||||
"proxy-agent": "^6.4.0",
|
||||
"socks": "^2.8.3",
|
||||
"wikipedia": "^2.1.2",
|
||||
"xml2js": "^0.6.2"
|
||||
"wikipedia": "^2.1.2"
|
||||
}
|
||||
}
|
||||
|
|
34
prototyping-crap/1.20.4-chat.js
Normal file
34
prototyping-crap/1.20.4-chat.js
Normal file
|
@ -0,0 +1,34 @@
|
|||
const version = '1.20.4'
|
||||
const { fromNotch } = require('prismarine-chat')(version)
|
||||
const nbt = require('prismarine-nbt')
|
||||
//const msg = {"type":"compound","value":{"extra":{"type":"list","value":{"type":"compound","value":[{"extra":{"type":"list","value":{"type":"compound","value":[{"color":{"type":"string","value":"dark_gray"},"text":{"type":"string","value":"["}},{"color":{"type":"string","value":"aqua"},"text":{"type":"string","value":"Prefix: "}},{"color":{"type":"string","value":"dark_red"},"text":{"type":"string","value":"~"}},{"color":{"type":"string","value":"dark_gray"},"text":{"type":"string","value":"]"}},{"":{"type":"string","value":" "}}]}},"text":{"type":"string","value":""}},{"extra":{"type":"list","value":{"type":"compound","value":[{"color":{"type":"string","value":"red"},"text":{"type":"string","value":"FNFBoyfriendBot"}}]}},"text":{"type":"string","value":""}},{"":{"type":"string","value":":"}},{"":{"type":"string","value":" "}},{"extra":{"type":"list","value":{"type":"compound","value":[{"color":{"type":"string","value":"dark_purple"},"text":{"type":"string","value":"FNF"}},{"color":{"type":"string","value":"aqua"},"text":{"type":"string","value":"Boyfriend"}},{"color":{"type":"string","value":"dark_red"},"text":{"type":"string","value":"Bot "}},{"color":{"type":"string","value":"white"},"text":{"type":"string","value":"- "}},{"color":{"type":"string","value":"dark_red"},"text":{"type":"string","value":"Parker"}},{"color":{"type":"string","value":"black"},"text":{"type":"string","value":"2991"}}]}},"text":{"type":"string","value":""}}]}},"text":{"type":"string","value":""}}}
|
||||
const msg = {"type":"compound","value":{"extra":{"type":"list","value":{"type":"compound","value":[{"extra":{"type":"list","value":{"type":"compound","value":[{"bold":{"type":"byte","value":1},"color":{"type":"string","value":"dark_red"},"text":{"type":"string","value":"["}},{"bold":{"type":"byte","value":1},"color":{"type":"string","value":"red"},"text":{"type":"string","value":"OP"}},{"bold":{"type":"byte","value":1},"color":{"type":"string","value":"dark_red"},"text":{"type":"string","value":"] "}},{"color":{"type":"string","value":"red"},"text":{"type":"string","value":""}}]}},"text":{"type":"string","value":""}},{"extra":{"type":"list","value":{"type":"compound","value":[{"color":{"type":"string","value":"red"},"text":{"type":"string","value":"birdevent"}}]}},"text":{"type":"string","value":""}},{"":{"type":"string","value":":"}},{"":{"type":"string","value":" "}},{"":{"type":"string","value":"?"}}]}},"text":{"type":"string","value":""}}}
|
||||
function tryParse (json) {
|
||||
|
||||
}
|
||||
function processNbtMessage (msg) {
|
||||
if (!msg || msg.type === 'end') return null
|
||||
const simplified = nbt.simplify(msg)
|
||||
const json = JSON.stringify(simplified, (key, val) => {
|
||||
if (key === 'id' && Array.isArray(val)) return uuidFromIntArray(val)
|
||||
return val
|
||||
})
|
||||
return json
|
||||
}
|
||||
console.log(fromNotch(processNbtMessage(msg)).toAnsi())
|
||||
console.log(fromNotch(nbt.simplify(msg).extra).toAnsi())
|
||||
async function nbtChat() {
|
||||
|
||||
const { parsed, type } = await nbt.parse(msg)
|
||||
console.log(parsed)
|
||||
}
|
||||
//nbtChat()
|
||||
/*
|
||||
async function main(file) {
|
||||
const buffer = fs.readFileSync(file)
|
||||
const { parsed, type } = await nbt.parse(buffer)
|
||||
console.log('JSON serialized', JSON.stringify(parsed, null, 2))
|
||||
fs.createWriteStream('bigtest.nbt').write(nbt.writeUncompressed(parsed, type)) // Write it back
|
||||
}
|
||||
main('bigtest.nbt')
|
||||
*/
|
|
@ -1,5 +0,0 @@
|
|||
const nbt = require('prismarine-nbt');
|
||||
async function aaa () {
|
||||
console.log(await nbt.stringify("e"));
|
||||
}
|
||||
aaa()
|
7
prototyping-crap/blacklist.js
Normal file
7
prototyping-crap/blacklist.js
Normal file
|
@ -0,0 +1,7 @@
|
|||
const fs = require('fs/promises');
|
||||
const path = require('path');
|
||||
const blacklist = require(path.join(__dirname, 'blacklist.json'));
|
||||
|
||||
for (const player of blacklist.players) {
|
||||
console.log('whos blacklisted?',[player]);
|
||||
}
|
8
prototyping-crap/blacklist.json
Normal file
8
prototyping-crap/blacklist.json
Normal file
|
@ -0,0 +1,8 @@
|
|||
{
|
||||
"players": [
|
||||
"CynicalDev",
|
||||
"denisapain",
|
||||
"Pan_Poppo",
|
||||
"Parker2991"
|
||||
]
|
||||
}
|
|
@ -1,65 +0,0 @@
|
|||
const bots = require('../data/changelog.json');
|
||||
module.exports = {
|
||||
name: 'changelog',
|
||||
description: ['check the bots changelog'],
|
||||
trustLevel: 0,
|
||||
aliases: ['clv', 'changes'],
|
||||
usage:[""],
|
||||
execute (context) {
|
||||
const query = context.arguments.join(' ').toLowerCase()
|
||||
const bot = context.bot
|
||||
if (query.length === 0) {
|
||||
const list = []
|
||||
|
||||
for (const info of bots) {
|
||||
if (list.length !== 0) list.push({ text: ', ', color: 'gray' })
|
||||
list.push(info.name)
|
||||
}
|
||||
const category = {
|
||||
translate: ' (%s%s%s%s%s%s%s%s%s) ',
|
||||
bold: false,
|
||||
color: 'gray',
|
||||
with: [
|
||||
{ color: 'aqua', text: 'Alpha Release' },
|
||||
{ color: 'gray', text: ' | ' },
|
||||
{ color: 'blue', text: 'Beta Release' },
|
||||
{ color: 'gray', text: ' | ' },
|
||||
{ color: 'green', text: 'Minor release' },
|
||||
{ color: 'gray', text: ' | ' },
|
||||
{ color: 'gold', text: 'Revision Release' },
|
||||
{ color: 'gray', text: ' | ' },
|
||||
{ color: 'dark_red', text: 'Major Release' }
|
||||
]
|
||||
}
|
||||
bot.tellraw("@a", [{ text: 'Changelogs (', color: 'gray' }, { text: JSON.stringify(bots.length), color: 'gold' }, { text: ')', color: 'gray' }, category, ' - ', ...list])
|
||||
return
|
||||
}
|
||||
|
||||
for (const info of bots) {
|
||||
const plainName = String(context.bot.getMessageAsPrismarine(info.name)).toLowerCase()
|
||||
if (plainName.includes(query)) this.sendBotInfo(info, context.bot)
|
||||
}
|
||||
},
|
||||
|
||||
sendBotInfo (info, bot) {
|
||||
const component = ['']
|
||||
component.push('', info.name)
|
||||
if (info.exclaimer) component.push('\n', ' ', info.exclaimer)
|
||||
if (info.authors && info.authors.length !== 0) {
|
||||
component.push('\n', 'Codename ')
|
||||
for (const author of info.authors) {
|
||||
component.push(author, { text: ', ', color: 'gray' })
|
||||
}
|
||||
component.pop()
|
||||
}
|
||||
if (info.foundation) component.push('\n', 'Date: ', info.foundation)
|
||||
if (info.prefixes && info.prefixes.length !== 0) {
|
||||
component.push('\n', '')
|
||||
for (const prefix of info.prefixes) {
|
||||
component.push(prefix, { text: ' ', color: 'gray' })
|
||||
}
|
||||
component.pop()
|
||||
}
|
||||
bot.tellraw('@a', [component])
|
||||
}
|
||||
}
|
1
prototyping-crap/data.json
Normal file
1
prototyping-crap/data.json
Normal file
|
@ -0,0 +1 @@
|
|||
[{"text":"e"},{"text":"sus"},{"text":"amongus"}]
|
102
prototyping-crap/default.yml
Normal file
102
prototyping-crap/default.yml
Normal file
|
@ -0,0 +1,102 @@
|
|||
# i bet theres gonna be some whiny assholes complaining about this because config is .yml and not .js since most java bots use .yml and no other
|
||||
# javascript bot uses .yml, all i got to say is go cry somewhere else about it you wont change my mind, you little shit,
|
||||
# it looks cleaner than config.js - Parker2991
|
||||
|
||||
|
||||
# FNFBoyfriendBot Config
|
||||
# commands
|
||||
Commands:
|
||||
prefixes:
|
||||
- '!'
|
||||
colors:
|
||||
discord:
|
||||
error: "#ff0000"
|
||||
embed: "#00ffff"
|
||||
help:
|
||||
pub_lickColor: "#00FFFF"
|
||||
t_rustedColor: "dark_purple"
|
||||
own_herColor: "dark_red"
|
||||
error: "#FF0000"
|
||||
|
||||
# core
|
||||
Core:
|
||||
JSON: ""
|
||||
area:
|
||||
start:
|
||||
x: 0
|
||||
y: 0
|
||||
z: 0
|
||||
end:
|
||||
x: 15
|
||||
y: 0
|
||||
z: 15
|
||||
|
||||
#validation
|
||||
validation:
|
||||
discord:
|
||||
roles:
|
||||
trusted: "trusted"
|
||||
owner: "owner"
|
||||
channelId: "channel validation here" # for sending hashes to discord if someone is too lazy to add validation for the bot to their client
|
||||
trustedKey: "trusted key here"
|
||||
ownerKey: "owner key here"
|
||||
|
||||
#discord
|
||||
Discord:
|
||||
enabled: false
|
||||
invite: "https://discord.gg/GCKtG4erux"
|
||||
commandPrefix: "!"
|
||||
presence:
|
||||
name: "amongus"
|
||||
type: 4
|
||||
status: "online"
|
||||
|
||||
# console
|
||||
console:
|
||||
filelogging: false
|
||||
prefix: "c."
|
||||
|
||||
# bots
|
||||
bots :
|
||||
# isKaboom = running the bot in kaboom
|
||||
# isCreayun = running the bot in creayun
|
||||
# useChat = running the bot in chat and not core
|
||||
# usernameGen = regenerating the bot's username every join
|
||||
# endcredits = the bot advertising
|
||||
# serverName = the name of the server ofc
|
||||
# Console.ratelimit = the number of messages that the bot can read in a few seconds before rejoining this is used to prevent spam, i do not recommend setting it to Infinity
|
||||
# selfcare.interval = selfcare interval duh
|
||||
- host: "localhost"
|
||||
useChat: false
|
||||
isKaboom: true
|
||||
isCreayun: false
|
||||
usernameGen: true
|
||||
username: "FNFBoyfriendBot"
|
||||
version: "1.20.2"
|
||||
serverName: "localhost"
|
||||
reconnectDelay: 6000
|
||||
endcredits: false
|
||||
Console:
|
||||
enabled: true
|
||||
ratelimit: 25
|
||||
Core:
|
||||
enabled: true
|
||||
interval: 180000
|
||||
discord:
|
||||
channelId: ""
|
||||
log: false
|
||||
matrix:
|
||||
roomId: ""
|
||||
selfcare:
|
||||
vanished: true
|
||||
unmuted: true
|
||||
prefix: true
|
||||
cspy: true
|
||||
tptoggle: true
|
||||
skin: true
|
||||
gmc: true
|
||||
op: true
|
||||
nickname: true
|
||||
username: true
|
||||
god: true
|
||||
interval: 500
|
|
@ -1,17 +0,0 @@
|
|||
const https = require('node:https');
|
||||
|
||||
https.get('https://encrypted.google.com/', (res) => {
|
||||
console.log('statusCode:', res.statusCode);
|
||||
// console.log('headers:', res.headers);
|
||||
console.log((res.complete))
|
||||
let data;
|
||||
res.on('data', (d) => {
|
||||
process.stdout.write(d);
|
||||
// if (data === undefined) data = chunk;
|
||||
// else data += chunk;
|
||||
// console.log(data);
|
||||
});
|
||||
|
||||
}).on('error', (e) => {
|
||||
console.error(e);
|
||||
});
|
9
prototyping-crap/filter.txt
Normal file
9
prototyping-crap/filter.txt
Normal file
|
@ -0,0 +1,9 @@
|
|||
|
||||
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
||||
e
|
20
prototyping-crap/filterAdd.js
Normal file
20
prototyping-crap/filterAdd.js
Normal file
|
@ -0,0 +1,20 @@
|
|||
const fs = require("fs");
|
||||
|
||||
var data = fs.readFileSync("data.json");
|
||||
var myObject = JSON.parse(data);
|
||||
|
||||
let newData = {
|
||||
text: "sus"
|
||||
}
|
||||
myObject.push(newData);
|
||||
var newData2 = JSON.stringify(myObject);
|
||||
fs.rmSync("./data.json");
|
||||
fs.writeFile("data2.json", newData2, (err) => {
|
||||
if (err) throw err;
|
||||
console.log("New data added");
|
||||
});
|
||||
fs.rename('data2.json', 'data.json', (err) => {
|
||||
if (err) throw err;
|
||||
// console.log('Rename complete!');
|
||||
});
|
||||
|
44
prototyping-crap/filterRemove.js
Normal file
44
prototyping-crap/filterRemove.js
Normal file
|
@ -0,0 +1,44 @@
|
|||
/*const playlists = [
|
||||
{
|
||||
"id" : "1",
|
||||
"owner_id" : "2",
|
||||
"song_ids" : [ "8", "32"]
|
||||
},
|
||||
{
|
||||
"id" : "2",
|
||||
"owner_id" : "3",
|
||||
"song_ids" : ["6", "8","11" ]
|
||||
}
|
||||
];*/
|
||||
const fs = require('fs');
|
||||
var data = require("./data.json");
|
||||
const e = data.splice('e', 1)
|
||||
const removePlayerById = (plists, text) =>
|
||||
plists.filter(player => player.text !== text);
|
||||
const result = removePlayerById(data, 2);
|
||||
console.log(result)
|
||||
// console.log(playerId)
|
||||
//}
|
||||
//remove()
|
||||
/*
|
||||
const fs = require("fs");
|
||||
|
||||
var data = fs.readFileSync("data.json");
|
||||
var myObject = JSON.parse(data);
|
||||
|
||||
let newData = {
|
||||
text: "sus"
|
||||
}
|
||||
myObject.push(newData);
|
||||
var newData2 = JSON.stringify(myObject);
|
||||
fs.rmSync("./data.json");
|
||||
fs.writeFile("data2.json", newData2, (err) => {
|
||||
if (err) throw err;
|
||||
console.log("New data added");
|
||||
});
|
||||
fs.rename('data2.json', 'data.json', (err) => {
|
||||
if (err) throw err;
|
||||
// console.log('Rename complete!');
|
||||
});
|
||||
|
||||
*/
|
2
prototyping-crap/haxe.js
Normal file
2
prototyping-crap/haxe.js
Normal file
|
@ -0,0 +1,2 @@
|
|||
const { haxe } = require('haxe')
|
||||
console.log(haxe())
|
|
@ -1,26 +0,0 @@
|
|||
const CommandError = require('../util/command_error.js');
|
||||
module.exports = {
|
||||
name: 'json',
|
||||
trustLevel: 0,
|
||||
aliases: [
|
||||
],
|
||||
description: 'placeholder text here',
|
||||
usages: [
|
||||
],
|
||||
execute (context) {
|
||||
const bot = context.bot;
|
||||
const args = context.arguments;
|
||||
try {
|
||||
// bot.tellraw("@a", [
|
||||
// { text: `Result \u203a` },
|
||||
//JSON.parse(args.join(' ')),
|
||||
// ])
|
||||
// bot.tellraw("@a", `Result ${JSON.stringify(JSON.parse(args.join(' ')))}` )
|
||||
bot.tellraw("@a", JSON.parse(JSON.stringify(args.join(' '))))
|
||||
// console.log([ { text: `Result \u203a` }, { text: JSON.parse(args.join(' ')) } ])
|
||||
} catch (e) {
|
||||
bot.tellraw("@a", { text: e.toString(), color: "dark_red" })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,87 +0,0 @@
|
|||
const sdk = require("matrix-js-sdk");
|
||||
const { logger } = require('matrix-js-sdk/lib/logger');
|
||||
async function matrix (bot, options, config, discordClient) {
|
||||
if (!options.roomId) return
|
||||
if (!config.matrix.enabled) return
|
||||
const client = sdk.createClient({
|
||||
baseUrl: `${config.matrix.hostUrl}`,
|
||||
accessToken: `${config.matrix.token}`,
|
||||
userId: `${config.matrix.userId}`,
|
||||
})
|
||||
bot.matrix = {
|
||||
client,
|
||||
roomId: options.roomId,
|
||||
prefix: config.matrix.prefix || undefined,
|
||||
inviteUrl: config.matrix.invite || undefined
|
||||
}
|
||||
bot.matrix.client.on('Room.timeline', (event, room, toStartOfTimeline) => {
|
||||
if (event.getRoomId() !== bot.matrix.roomId
|
||||
|| event.getType() !== 'm.room.message'
|
||||
|| event.getTs() < startTime
|
||||
|| event.sender.userId === bot.matrix.client.getUserId()) return
|
||||
const content = event.getContent()
|
||||
const permissionLevel = event.sender.powerLevelNorm
|
||||
bot.tellraw("@a", [
|
||||
{
|
||||
translate: "[%s] %s \u203a %s",
|
||||
color: "gray",
|
||||
with: [
|
||||
{
|
||||
translate: "%s%s%s %s",
|
||||
with: [
|
||||
{
|
||||
text: "FNF",
|
||||
color: "blue",
|
||||
},
|
||||
{
|
||||
text: "Boyfriend",
|
||||
color: "dark_aqua",
|
||||
},
|
||||
{
|
||||
text: "Bot",
|
||||
color: "dark_blue",
|
||||
},
|
||||
{
|
||||
text: "Matrix",
|
||||
color: "#0dbd8b"
|
||||
}
|
||||
],
|
||||
// clickEvent: config.matrix.invite ? { action: 'open_url', value: config.matrix.invite } : undefined,
|
||||
// hoverEvent: { action: 'show_text', contents: 'Click to join the matrix' }
|
||||
},
|
||||
{
|
||||
// text: event.sender.rawDisplayName || event.sender.name || event.sender.userId
|
||||
},
|
||||
// content.body
|
||||
event.getContent().body,
|
||||
]
|
||||
}
|
||||
])
|
||||
console.log(
|
||||
// the room name will update with m.room.name events automatically
|
||||
"(%s) %s :: %s",
|
||||
room.name,
|
||||
event.getSender(),
|
||||
event.getContent().body,
|
||||
)
|
||||
})
|
||||
bot.on('message', (message) => {
|
||||
const stringMessage = bot.getMessageAsPrismarine(message)?.toString()
|
||||
const content = {
|
||||
body: '```ansi' + stringMessage + '```',
|
||||
msgtype: "m.text",
|
||||
}
|
||||
let queue = [];
|
||||
setInterval(() => {
|
||||
// if (queue.length === 0) return
|
||||
try {
|
||||
bot.matrix.client.sendEvent(bot.options.roomId, 'm.room.message', content);
|
||||
} catch (e) {
|
||||
bot.console.logs(error.toString());
|
||||
}
|
||||
queue = [];
|
||||
}, 5000)
|
||||
})
|
||||
await client.startClient()
|
||||
}
|
||||
module.exports = matrix;
|
7
prototyping-crap/mcserver.js
Normal file
7
prototyping-crap/mcserver.js
Normal file
|
@ -0,0 +1,7 @@
|
|||
const mc = require('minecraft-protocol');
|
||||
async function ping() {
|
||||
const server = await mc.ping({host:"kaboom.pw",port:"25565"})
|
||||
// console.log(await mc.ping({host:"kaboom.pw",port:"25565"}))
|
||||
console.log(server)
|
||||
}
|
||||
ping()
|
10
prototyping-crap/version.js
Normal file
10
prototyping-crap/version.js
Normal file
|
@ -0,0 +1,10 @@
|
|||
const version = require('./version.json');
|
||||
const ChatMessage = require('prismarine-chat')('1.20.2');
|
||||
console.log(version);
|
||||
console.log(version.BotBuildstring.build);
|
||||
console.log(version.BotBuildstring.codename);
|
||||
console.log(version.BotBuildstring.version);
|
||||
console.log(ChatMessage.fromNotch(`${version.BotBuildstring.version}-${version.BotBuildstring.codename}-${version.BotBuildstring.build}`)?.toAnsi())
|
||||
console.log(ChatMessage.fromNotch(version.BotBuildstring.codename)?.toAnsi())
|
||||
console.log(ChatMessage.fromNotch(version.BotBuildstring.name)?.toAnsi())
|
||||
console.log(`${ChatMessage.fromNotch(version.BotBuildstring.name)?.toAnsi()}-${version.BotBuildstring.version}-${ChatMessage.fromNotch(version.BotBuildstring.codename)?.toAnsi()}`)
|
35
prototyping-crap/version.json
Normal file
35
prototyping-crap/version.json
Normal file
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
"BotBuildstring": {
|
||||
"name": [
|
||||
{
|
||||
"translate":"%s%s%s",
|
||||
"with": [
|
||||
{
|
||||
"text": "FridayNightFunkin",
|
||||
"color": "dark_purple"
|
||||
},
|
||||
{
|
||||
"text": "Boyfriend",
|
||||
"color": "#00FFFF"
|
||||
},
|
||||
{
|
||||
"text": "Bot",
|
||||
"color": "#ff0000"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"build":"#500",
|
||||
"codename": [
|
||||
{
|
||||
"text": "Censory ",
|
||||
"color": "dark_red"
|
||||
},
|
||||
{
|
||||
"text": "Overload",
|
||||
"color": "red"
|
||||
}
|
||||
],
|
||||
"version":"v5.0.8"
|
||||
}
|
||||
}
|
|
@ -1,9 +0,0 @@
|
|||
const { request } = require("undici");
|
||||
// https://en.wikipedia.org/w/api.php
|
||||
async function sus () {
|
||||
const query = new URLSearchParams("sus");
|
||||
const wikiResult = await request(`https://en.wikipedia.org/wiki/sus`);
|
||||
const result = await wikiResult.body;
|
||||
console.log((await result.json()))
|
||||
}
|
||||
sus()
|
6
prototyping-crap/wordhash.js
Normal file
6
prototyping-crap/wordhash.js
Normal file
|
@ -0,0 +1,6 @@
|
|||
const crypto = require('crypto');
|
||||
const sus = 'meow';
|
||||
//const amogus = crypto.createHash('sha256').update(Math.floor(Date.now() / 10000) + bot.validation.keys.trustedKey).digest('hex').substring(0, 16)
|
||||
const amogus = crypto.createHash('sha256').update(sus).digest('hex')
|
||||
console.log(amogus)
|
||||
|
0
src/README.md
Normal file
0
src/README.md
Normal file
152
src/bot.js
152
src/bot.js
|
@ -1,70 +1,108 @@
|
|||
const mc = require('minecraft-protocol');
|
||||
const { EventEmitter } = require('events');
|
||||
EventEmitter.defaultMaxListeners = 5e6;
|
||||
const util = require('util');
|
||||
const createRegistry = require('prismarine-registry');
|
||||
const ChatMessage = require('prismarine-chat');
|
||||
const mc = require("minecraft-protocol");
|
||||
const { EventEmitter } = require("node:events");
|
||||
const usernameGen = require('./util/usernameGen');
|
||||
require("events").EventEmitter.defaultMaxListeners = Infinity;
|
||||
const { execSync } = require('child_process');
|
||||
function createBot(options = {}, config) {
|
||||
const bot = new EventEmitter();
|
||||
bot.options = {
|
||||
// Set some default values in options
|
||||
host: options.host ??= 'localhost',
|
||||
username: options.username ??= 'Player',
|
||||
hideErrors: options.hideErrors ??= true, // HACK: Hide errors by default as a lazy fix to console being spammed with them
|
||||
};
|
||||
bot.options = {
|
||||
host: options.host ??= "localhost",
|
||||
username: options.username ??= usernameGen(),
|
||||
hideErrors: options.hideErrors ??= true, // HACK: Hide errors by default as a lazy fix to console being spammed with the console
|
||||
version: options.version ??= '1.20.2',
|
||||
}
|
||||
bot.options = options;
|
||||
|
||||
// Create our client object, put it on the bot, and register some events
|
||||
bot.on('init_client', client => {
|
||||
client.on('packet', (data, meta) => {
|
||||
bot.emit('packet', data, meta)
|
||||
bot.on("init_client", (client) => {
|
||||
client.on("packet", (data, meta) => {
|
||||
bot.emit("packet", data, meta);
|
||||
bot.emit('packet.' + meta.name, data)
|
||||
})
|
||||
});
|
||||
/* const timer = setInterval(() => {
|
||||
if (!config.bots.endcredits) {
|
||||
return
|
||||
} else {
|
||||
bot.chat(`Join the FNFBoyfriendBot discord ${bot.discord.invite}`)
|
||||
}
|
||||
}, 280000)*/
|
||||
client.on("login", async function (data) {
|
||||
bot.uuid = client.uuid;
|
||||
bot.username = client.username;
|
||||
bot.port = bot.options.port;
|
||||
bot.version = bot.options.version;
|
||||
/* if (bot.options.isCreayun) {
|
||||
}
|
||||
var day = new Date().getDay()
|
||||
if (day === 5) {
|
||||
bot.chat("Gettin' freaky on a Friday Night!")
|
||||
} else {
|
||||
bot.chat(`&5FNF&bBoyfriend&4Bot &f- &4Parker&02991`)
|
||||
}
|
||||
timer;
|
||||
if (bot.options.useChat) {
|
||||
bot?.console?.warn(`useChat is active for ${bot.options.host} the bot will not be able to run commands in core`)
|
||||
} else if (bot.options.isCreayun) {
|
||||
bot?.console?.info(`Creayun mode is active for ${bot.options.host} please not that the bot will not read kaboom commands and messages when Creayun
|
||||
mode is active`)
|
||||
}
|
||||
if (bot.options.debug.enabled) {
|
||||
bot.console.warn(`Debug mode is enabled for ${bot.options.host}:${bot.options.port} please note this WILL spam console is all options are enabled`)
|
||||
}*/
|
||||
})
|
||||
client.on("end", (reason) => {
|
||||
const parsed = JSON.stringify(reason);
|
||||
bot.emit('end', parsed);
|
||||
bot.console.warn(`Disconnected: ${parsed}`);
|
||||
bot.cloop.clear()
|
||||
bot.memusage.off()
|
||||
bot.tps.off()
|
||||
bot.bruhifyText = ''
|
||||
// clearInterval(timer)
|
||||
bot?.discord?.channel?.send('Disconnected: ' + '``' + parsed + '``')
|
||||
});
|
||||
|
||||
client.on("disconnect", (data) => {
|
||||
const parsed = JSON.parse(data.reason)
|
||||
bot.emit(parsed, "disconnect");
|
||||
if (parsed === 'Server is full!') {
|
||||
bot.emit("disconnect", `what the fuck?`)
|
||||
} else if (parsed === 'Wait 5 seconds before connecting, thanks! :)') {
|
||||
bot.options.reconnectDelay = 1000 * 5
|
||||
bot.console.info(`Setting reconnect delay to ${1000 * 5}`)
|
||||
bot.discord.channel?.send(`Setting reconnecting delay to ${1000 * 5}`)
|
||||
} else {
|
||||
bot.console.warn(`Disconnected: ${JSON.stringify(parsed)}`);
|
||||
bot?.discord?.channel?.send('Disconnected: ' + '``' + JSON.stringify(parsed) + '``')
|
||||
}
|
||||
});
|
||||
|
||||
client.on('login', () => {
|
||||
bot.uuid = client.uuid
|
||||
bot.username = client.username
|
||||
bot.registry = createRegistry(client.version)
|
||||
bot.registry.language = require('./data/language.json');
|
||||
bot.emit('registry_ready', bot.registry)
|
||||
})
|
||||
|
||||
client.on('disconnect', data => {
|
||||
bot.emit("disconnect", data);
|
||||
bot.console.warn(`${ChatMessage(bot._client.version).fromNotch("§8[§bClient Reconnect§8]§r")?.toAnsi()} ${ChatMessage(bot._client.version).fromNotch(data.reason)?.toAnsi()}`)
|
||||
})
|
||||
|
||||
client.on('end', reason => {
|
||||
bot.emit('end', reason);
|
||||
if (reason === "socketClosed") return;
|
||||
bot.console.warn(ChatMessage(bot._client.version).fromNotch(`§8[§bClient Reconnect§8]§r ${reason}`)?.toAnsi())
|
||||
// bot = undefined;
|
||||
// config = undefined;
|
||||
})
|
||||
|
||||
client.on('error', error => {
|
||||
bot.console.warn(ChatMessage(bot._client.version).fromNotch('§8[§bClient Reconnect§8]§r ')?.toAnsi() + util.inspect(error.toString()))
|
||||
bot?.discord?.channel?.send(error.toString())
|
||||
})
|
||||
client.on("kick_disconnect", (data) => {
|
||||
const parsed = JSON.parse(data.reason);
|
||||
bot.emit(parsed, "kick_disconnect");
|
||||
bot?.discord?.channel?.send('Disconnected: ' + '``' + parsed + '``')
|
||||
bot.console.warn(`Disconnected: ${JSON.stringify(data.reason)}`);
|
||||
});
|
||||
|
||||
client.on("keep_alive", ({ keepAliveId }) => {
|
||||
bot.emit("keep_alive", { keepAliveId })
|
||||
})
|
||||
|
||||
client.on('kick_disconnect', (data) => {
|
||||
bot.emit("kick_disconnect", data.reason)
|
||||
bot.console?.warn(`${ChatMessage(bot._client.version).fromNotch("§8[§bClient Reconnect§8]§r")?.toAnsi()} ${ChatMessage(bot._client.version).fromNotch(data.reason)?.toAnsi()}`)
|
||||
bot?.discord?.channel?.send(util.inspect(data.reason))
|
||||
})
|
||||
|
||||
process.on("uncaughtException", (e) => {
|
||||
// console?.warn(e.stack)
|
||||
bot.emit("keep_alive", { keepAliveId });
|
||||
});
|
||||
})
|
||||
|
||||
const client = options.client ?? new mc.createClient(bot.options)
|
||||
bot._client = client
|
||||
bot.emit('init_client', client)
|
||||
bot.bots = options.bots ?? [bot]
|
||||
return bot
|
||||
client.on("error", (error) => {
|
||||
bot?.discord?.channel?.send('Disconnected: ' + '``' + JSON.stringify(error.toString()) + '``')
|
||||
bot.console.warn(error.toString())
|
||||
// bot.emit("error", error)
|
||||
})
|
||||
});
|
||||
|
||||
|
||||
const client = options.client ?? mc.createClient(options);
|
||||
bot._client = client;
|
||||
bot.emit("init_client", client);
|
||||
bot.bots = options.bots ?? [bot];
|
||||
return bot;
|
||||
}
|
||||
|
||||
|
||||
module.exports = createBot;
|
||||
|
|
34
src/chat/chatTypeEmote.js
Normal file
34
src/chat/chatTypeEmote.js
Normal file
|
@ -0,0 +1,34 @@
|
|||
function chatTypeEmote (message, data, context) {
|
||||
try{
|
||||
if (message === null || typeof message !== 'object') return
|
||||
|
||||
if (message.with?.length < 2 || (message.translate !== 'chat.type.emote' && message.translate !== '%s %s')) return
|
||||
|
||||
const senderComponent = message.with[0]
|
||||
// wtf spam again - console.log(senderComponent)//wtf...
|
||||
//console.log(senderComponent)
|
||||
|
||||
const contents = message.with[1]
|
||||
// spam lol - console.log(contents)
|
||||
//console.log(contents)
|
||||
let sender
|
||||
|
||||
const hoverEvent = senderComponent.hoverEvent
|
||||
if (hoverEvent?.action === 'show_entity') {
|
||||
const id = hoverEvent.contents.id
|
||||
//
|
||||
sender = data.players.find(player => player.uuid === id)
|
||||
} else {
|
||||
const stringUsername = data.getMessageAsPrismarine(senderComponent).toString() // TypeError: data.getMessageAsPrismarine is not a function
|
||||
|
||||
sender = data.players.find(player => player.profile.name) //=== stringusername)
|
||||
}
|
||||
|
||||
if (!sender) return undefined
|
||||
|
||||
return { sender, contents, type: 'minecraft:chat', senderComponent }
|
||||
}catch(e){
|
||||
console.log(e.stack)
|
||||
}
|
||||
}
|
||||
module.exports = chatTypeEmote
|
34
src/chat/chatTypeText.js
Normal file
34
src/chat/chatTypeText.js
Normal file
|
@ -0,0 +1,34 @@
|
|||
function chatTypeText (message, data, context) {
|
||||
try {
|
||||
if (message === null || typeof message !== 'object') return
|
||||
|
||||
if (message.with?.length < 2 || (message.translate !== 'chat.type.text' && message.translate !== '%s %s')) return
|
||||
|
||||
const senderComponent = message.with[0]
|
||||
// wtf spam again - console.log(senderComponent)//wtf...
|
||||
//console.log(senderComponent)
|
||||
|
||||
const contents = message.with[1]
|
||||
// spam lol - console.log(contents)
|
||||
//console.log(contents)
|
||||
let sender
|
||||
|
||||
const hoverEvent = senderComponent.hoverEvent
|
||||
if (hoverEvent?.action === 'show_entity') {
|
||||
const id = hoverEvent.contents.id
|
||||
//
|
||||
sender = data.players.find(player => player.uuid === id)
|
||||
} else {
|
||||
const stringUsername = data.getMessageAsPrismarine(senderComponent).toString() // TypeError: data.getMessageAsPrismarine is not a function
|
||||
|
||||
sender = data.players.find(player => player.profile.name) //=== stringusername)
|
||||
}
|
||||
|
||||
if (!sender) return undefined
|
||||
|
||||
return { sender, contents, type: 'minecraft:chat', senderComponent }
|
||||
}catch(e){
|
||||
console.log(e.stack)
|
||||
}
|
||||
}
|
||||
module.exports = chatTypeText
|
35
src/chat/chipmunkmod.js
Normal file
35
src/chat/chipmunkmod.js
Normal file
|
@ -0,0 +1,35 @@
|
|||
function chipmunkmod (message, data, context, bot) {
|
||||
try {
|
||||
if (message === null || typeof message !== 'object') return
|
||||
|
||||
if (message.with?.length < 3 || (message.translate !== '[%s] %s › %s' && message.translate !== '%s %s › %s')) return
|
||||
|
||||
const senderComponent = message.with[1]
|
||||
// wtf spam again -
|
||||
//console.log(senderComponent)//wtf...
|
||||
|
||||
|
||||
const contents = message.with[2]
|
||||
// spam lol - console.log(contents)
|
||||
let sender
|
||||
|
||||
const hoverEvent = senderComponent.hoverEvent
|
||||
//console.log(JSON.stringify(hoverEvent))
|
||||
if (hoverEvent?.action === 'show_entity') {
|
||||
const id = hoverEvent.contents.id
|
||||
//
|
||||
sender = data.players.find(player => player.uuid === id)
|
||||
} else {
|
||||
const stringUsername = data.getMessageAsPrismarine(senderComponent).toString() // TypeError: data.getMessageAsPrismarine is not a function
|
||||
|
||||
sender = data.players.find(player => player.profile.name) //=== stringusername)
|
||||
}
|
||||
|
||||
if (!sender) return null
|
||||
|
||||
return { sender, contents, type: 'minecraft:chat', senderComponent }
|
||||
} catch(e) {
|
||||
console.error(e)
|
||||
}
|
||||
}
|
||||
module.exports = chipmunkmod
|
27
src/chat/chipmunkmodBlackilyKatVer.js
Normal file
27
src/chat/chipmunkmodBlackilyKatVer.js
Normal file
|
@ -0,0 +1,27 @@
|
|||
function chipmunkmodBlackilyKat (message, data) {
|
||||
if (message === null || typeof message !== 'object') return
|
||||
|
||||
if (message.with?.length < 4 || (message.translate !== '[%s%s] %s › %s', message.color !== '#55FFFF' && message.translate !== '%s%s %s › %s', message.color !== '#55FFFF')) return
|
||||
|
||||
const senderComponent = message.with[1]
|
||||
const contents = message.with[3]
|
||||
|
||||
let sender
|
||||
|
||||
const hoverEvent = senderComponent.hoverEvent
|
||||
if (hoverEvent?.action === 'show_entity') {
|
||||
const id = hoverEvent.contents.id
|
||||
//
|
||||
sender = data.players.find(player => player.uuid === id)
|
||||
} else {
|
||||
const stringUsername = data.getMessageAsPrismarine(senderComponent).toString() // TypeError: data.getMessageAsPrismarine is not a function
|
||||
|
||||
sender = data.players.find(player => player.profile.name) //=== stringusername)
|
||||
}
|
||||
|
||||
if (!sender) return undefined
|
||||
|
||||
return { sender, contents, type: 'minecraft:chat', senderComponent }
|
||||
}
|
||||
|
||||
module.exports = chipmunkmodBlackilyKat
|
42
src/chat/creayun.js
Normal file
42
src/chat/creayun.js
Normal file
|
@ -0,0 +1,42 @@
|
|||
function creayun (messageobj, data) { // this function is not getting called
|
||||
const ChatMessage = require('prismarine-chat')('1.20.1')
|
||||
const util = require('util')
|
||||
const stringify = message => new ChatMessage(message).toString()
|
||||
const message = stringify(messageobj);
|
||||
const playerWithPrefix = /^(.*?) (\S*?) » (.*?)$/;
|
||||
const playerWithoutPrefix = /^(\S*?) » (.*?)$/
|
||||
// var pattern = /^(.*?) (\S*?) \u203a (.*?)$/;
|
||||
//console.log('[debug] parsing a message');
|
||||
// const match = message.match(pattern);
|
||||
if (playerWithPrefix.test(message)) {
|
||||
// console.log('[debug]', match);
|
||||
let match = message.match(playerWithPrefix)
|
||||
const sender = data.players.find((player) => player.uuid === player.uuid)
|
||||
if (!sender) return undefined
|
||||
return { sender, contents: match[3], type: 'minecraft:chat'};
|
||||
}//i just realized that the bot uses tellraw
|
||||
//ima try to fix that
|
||||
}
|
||||
module.exports = creayun;
|
||||
// bot.players.find((player) => player.profile.name === players.username)
|
||||
// let displayName = data.senderName ?? { text: '' }
|
||||
/*
|
||||
const playerListDisplayName = { extra: [prefix, displayName], text: '' }
|
||||
let sender
|
||||
if (data.uuid) {
|
||||
sender = data.players.find(player => player.uuid === data.senderUuid)
|
||||
} else {
|
||||
const playerListDisplayName = { extra: [prefix, displayName], text: '' }
|
||||
sender = data.players.find(player => util.isDeepStrictEqual(player.displayName, playerListDisplayName))
|
||||
}
|
||||
|
||||
if (!sender) return undefined
|
||||
|
||||
return { sender, contents, type: 'minecraft:chat', displayName }
|
||||
}
|
||||
|
||||
function isSeparatorAt (children, start) {
|
||||
return (children[start]?.text === ':' || children[start]?.text === '\xa7r:') && children[start + 1]?.text === ' '
|
||||
}
|
||||
|
||||
*/
|
|
@ -35,7 +35,8 @@ function kaboom (message, data) {
|
|||
}
|
||||
|
||||
function isSeparatorAt (children, start) {
|
||||
return (children[start]?.text === ':' || children[start]?.text === '\xa7f:') && children[start + 1]?.text === ' '
|
||||
return (children[start]?.text === ':' || children[start]?.text === '\xa7r:') && children[start + 1]?.text === ' '
|
||||
}
|
||||
|
||||
module.exports = kaboom
|
||||
|
61
src/chat/savage.js
Normal file
61
src/chat/savage.js
Normal file
|
@ -0,0 +1,61 @@
|
|||
const util = require('util')
|
||||
|
||||
function savage (message, data) {
|
||||
if (message === null || typeof message !== 'object') return
|
||||
|
||||
if (message.text !== '' || !Array.isArray(message.extra) || message.extra.length < 3) return
|
||||
|
||||
const children = message.extra
|
||||
|
||||
const prefix = children[0]
|
||||
let displayName = data.senderName ?? { text: '' }
|
||||
let contents = { text: ' ' }
|
||||
|
||||
if (isSeparatorAt(children, 1)) { // Missing/blank display name
|
||||
if (children.length > 3) contents = children[3]
|
||||
} else if (isSeparatorAt(children, 2)) {
|
||||
displayName = children[1]
|
||||
if (children.length > 4) contents = children[4]
|
||||
} else {
|
||||
return undefined
|
||||
}
|
||||
/*
|
||||
if (isSeparatorAt(children, 1)) { // Missing/blank display name
|
||||
if (children.length > 3) contents = children[3]
|
||||
} else if (isSeparatorAt(children, 2)) {
|
||||
displayName = children[1]
|
||||
if (children.length > 4) contents = children[4]
|
||||
} else {
|
||||
return undefined
|
||||
}
|
||||
*/
|
||||
// let sus = { text: ' ' }
|
||||
const playerListDisplayName = { extra: [prefix, displayName, content]}
|
||||
let sender
|
||||
if (data.uuid) {
|
||||
sender = data.players.find(player => player.uuid === data.senderUuid)
|
||||
} else {
|
||||
const playerListDisplayName = { extra: [prefix, displayName, content] }
|
||||
sender = data.players.find(player => util.isDeepStrictEqual(player.displayName, playerListDisplayName))
|
||||
}
|
||||
|
||||
if (!sender) return undefined
|
||||
|
||||
return { sender, contents, type: 'minecraft:chat' }
|
||||
}
|
||||
|
||||
function isSeparatorAt (children, start) {
|
||||
return (children[start]?.text === '»' || children[start]?.text === '\xa79»\xa7r') && children[start + 1]?.text === ''
|
||||
}
|
||||
// [prefix]&r [name] [suffix] &9»&r
|
||||
// {DISPLAYNAME} &9»&r {MESSAGE}
|
||||
/*
|
||||
{"extra":[{"text":"e e"},{"text":" "},{"color":"dark_red","text":"Parker"},{"color":"black","text":"2991"},{"text":" "},
|
||||
{"color":"blue","text":"»"},{"text":" "},{"color":"white","text":"duping fucking rank"}],"text":""}
|
||||
*/
|
||||
/*
|
||||
{"extra":[{"bold":true,"color":"dark_red","text":"["},{"bold":true,"color":"red","text":"OP"},{"bold":true,"color":"dark_red","text":"]"},
|
||||
{"text":" "},{"color":"red","text":"Parker2991"},{"text":" "},{"color":"blue","text":"»"},{"text":" e"}],"text":""}
|
||||
*/
|
||||
module.exports = savage;
|
||||
|
35
src/chat/say.js
Normal file
35
src/chat/say.js
Normal file
|
@ -0,0 +1,35 @@
|
|||
function say (message, data, context, bot) {
|
||||
try {
|
||||
if (message === null || typeof message !== 'object') return
|
||||
|
||||
if (message.with?.length < 2 || (message.translate !== 'chat.type.announcement' && message.translate !== '%s %s')) return
|
||||
|
||||
const senderComponent = message.with[0]
|
||||
// wtf spam again -
|
||||
//console.log(senderComponent)//wtf...
|
||||
|
||||
|
||||
const contents = message.with[1]
|
||||
// spam lol - console.log(contents)
|
||||
let sender
|
||||
|
||||
const hoverEvent = senderComponent.hoverEvent
|
||||
//console.log(JSON.stringify(hoverEvent))
|
||||
if (hoverEvent?.action === 'show_entity') {
|
||||
const id = hoverEvent?.contents?.id
|
||||
//
|
||||
sender = data.players.find(player => player.uuid === id)
|
||||
} else {
|
||||
const stringUsername = data.getMessageAsPrismarine(senderComponent).toString() // TypeError: data.getMessageAsPrismarine is not a function
|
||||
|
||||
sender = data.players.find(player => player.profile.name) //=== stringusername)
|
||||
}
|
||||
|
||||
if (!sender) return null
|
||||
|
||||
return { sender, contents, type: 'minecraft:chat', senderComponent }
|
||||
} catch(e) {
|
||||
console.error(e)
|
||||
}
|
||||
}
|
||||
module.exports = say
|
|
@ -1,32 +0,0 @@
|
|||
module.exports = {
|
||||
data: {
|
||||
name: 'vanish',
|
||||
trustLevel: 2,
|
||||
aliases: [
|
||||
"vanishtoggle"
|
||||
],
|
||||
description: 'toggle the bots vanish selfcare',
|
||||
usages: [
|
||||
|
||||
],
|
||||
},
|
||||
execute (context) {
|
||||
const bot = context.bot
|
||||
const args = context.arguments;
|
||||
if (args.slice(1).join('') === 'true') {
|
||||
bot.vanished = true
|
||||
bot.chat.message('enabled vanish selfcare')
|
||||
}
|
||||
if (args.slice(1).join('') === 'false') {
|
||||
bot.vanished = false;
|
||||
bot.chat.message('disabled vanish selfcare')
|
||||
}
|
||||
},
|
||||
discordExecute (context) {
|
||||
const bot = context.bot;
|
||||
const args = context.arguments;
|
||||
bot.vanished = false;
|
||||
bot.chat.message('disabling vanish selfcare,...');
|
||||
bot.chat.command('v off')
|
||||
}
|
||||
}
|
368
src/commands/bots.js
Normal file
368
src/commands/bots.js
Normal file
|
@ -0,0 +1,368 @@
|
|||
// TODO: Maybe add more authors
|
||||
const bots = [
|
||||
{
|
||||
name: { text: "HBot", color: "aqua", bold: false },
|
||||
authors: ["hhhzzzsss"],
|
||||
exclaimer: "HBOT HARRYBUTT LMAOOOOOOOOOOOOOOOOO",
|
||||
foundation: "java/mcprotocollib",
|
||||
prefixes: ["#"],
|
||||
},
|
||||
{
|
||||
name: [{ text: "FBot", color: "gold" }],
|
||||
authors: ["popbob/aaa"],
|
||||
exclaimer: "",
|
||||
foundation: "nodejs/node-minecraft-protocol",
|
||||
prefixes: ["+"],
|
||||
},
|
||||
|
||||
{
|
||||
name: { text: "CddehhBot", color: "red", bold: false },
|
||||
authors: ["CaydennO1","spyingcreeper09"],
|
||||
exclaimer: "WHAT IS THIS GOOFY AAAH FUCKING BOT FUCKING PIECE OF RETARDED ASS SHIT BOT ITS SO FUCKING SHIT I WANNA IPFILTER IT WITH FUCKING CHOMENS",
|
||||
foundation: "nodejs/mineflayer",
|
||||
prefixes: [","],
|
||||
},
|
||||
{
|
||||
name: { text: "TurtleBot", color: "green", bold: false },
|
||||
authors: ["TurtleKid"],
|
||||
exclaimer: "nmp when?",
|
||||
foundation: "nodejs/mineflayer",
|
||||
prefixes: ["\\"],
|
||||
},
|
||||
{
|
||||
name: { text: "NothingBot", color: "dark_red", bold: false },
|
||||
authors: ["Yaode_owo"],
|
||||
exclaimer: "uwu",
|
||||
foundation: "nodejs/mineflayer",
|
||||
prefixes: ["?"],
|
||||
},
|
||||
{
|
||||
name: { text: "SC09Bot", color: "dark_gray", bold: false },
|
||||
authors: ["spyingcreeper09"],
|
||||
exclaimer: ":3",
|
||||
foundation: "nodejs/node-minecraft-protocol",
|
||||
prefixes: ["@"],
|
||||
},
|
||||
{
|
||||
name: { text: "HorizonBot", color: "gold", bold: false },
|
||||
authors: ["ZenZoya","Yaode_owo","Parker2991", "and others"],
|
||||
exclaimer: "originally called §5FleamBot§r",
|
||||
foundation: "nodejs/node-minecraft-protocol",
|
||||
prefixes: ["^"],
|
||||
},
|
||||
{
|
||||
name: { text: "64Bot", color: "gold", bold: false },
|
||||
authors: ["64Will64"],
|
||||
exclaimer: "NINTENDO 64?!?!??!?! 69Bot when??????",
|
||||
foundation: "NodeJS/Mineflayer",
|
||||
prefixes: ["w="],
|
||||
},
|
||||
{
|
||||
name: { text: "Nebulabot", color: "dark_purple", bold: false },
|
||||
authors: ["IuCC"],
|
||||
exclaimer: "the void",
|
||||
foundation: "NodeJS/Node-minecraft-protocol",
|
||||
prefixes: ["["],
|
||||
},
|
||||
{
|
||||
name: [
|
||||
{ text: "Prism", color: "#00FF9C", bold: true },
|
||||
{ text: "Bot", color: "white",bold:true },
|
||||
],
|
||||
authors: ["IuCC"],
|
||||
exclaimer: "prismarine :3",
|
||||
foundation: "NodeJS/Node-minecraft-protocol",
|
||||
prefixes: ["["],
|
||||
},
|
||||
{
|
||||
name: { text: "SharpBot", color: "aqua", bold: false },
|
||||
authors: ["64Will64"],
|
||||
exclaimer:
|
||||
"sharp as in the tv? idfk im out of jokes also the first c# bot on the list??",
|
||||
foundation: "C#/MineSharp",
|
||||
prefixes: ["s="],
|
||||
},
|
||||
|
||||
{
|
||||
name: { text: "MoonBot", color: "red", bold: false },
|
||||
authors: ["64Will64"],
|
||||
exclaimer: "stop mooning/mooing me ",
|
||||
foundation: "NodeJS/Mineflayer",
|
||||
prefixes: ["m="],
|
||||
},
|
||||
{
|
||||
name: { text: "TableBot", color: "yellow", bold: false },
|
||||
authors: ["12alex12"],
|
||||
exclaimer: "TABLE CLOTH BOT?!?! ",
|
||||
foundation: "NodeJS/Node-minecraft-protocol",
|
||||
prefixes: ["t!"],
|
||||
},
|
||||
{
|
||||
name: [
|
||||
{ text: "Evil", color: "dark_red", bold: false },
|
||||
{ text: "Bot", color: "dark_purple" },
|
||||
],
|
||||
authors: ["FusseligerDev"],
|
||||
exclaimer: "",
|
||||
foundation: "Java/Custom",
|
||||
prefixes: ["!"],
|
||||
},
|
||||
{
|
||||
name: { text: "SBot Java", color: "white", bold: false }, // TODO: Gradient
|
||||
authors: ["evkc"],
|
||||
foundation: "Java/MCProtocolLib",
|
||||
prefixes: [":"],
|
||||
},
|
||||
{
|
||||
name: { text: "SBot Rust", color: "white", bold: false }, // TODO: Gradient
|
||||
authors: ["evkc"],
|
||||
foundation: "Rust",
|
||||
prefixes: ["re:"],
|
||||
},
|
||||
{
|
||||
name: { text: "Z-Boy-Bot", color: "dark_purple", bold: false }, // TODO: Gradient
|
||||
exclaimer: "Most likely skidded along with kbot that the dev used",
|
||||
authors: ["Romnci"],
|
||||
foundation: "NodeJS/mineflayer or Java/mcprotocollib idfk",
|
||||
prefixes: ["Z]"],
|
||||
},
|
||||
{
|
||||
name: { text: "ABot", color: "gold", bold: true }, // TODO: Gradient
|
||||
exclaimer: "not used anymore (replaced by V2)",
|
||||
authors: [{ text: "_yfd", color: "light_purple" }],
|
||||
foundation: "NodeJS/Node-Minecraft-Protocol",
|
||||
prefixes: ["<"],
|
||||
},
|
||||
{
|
||||
name: { text: "ABot-V2", color: "gold", bold: true }, // TODO: Gradient
|
||||
exclaimer: "",
|
||||
authors: [{ text: "_yfd", color: "light_purple" }],
|
||||
foundation: "NodeJS/Node-Minecraft-Protocol",
|
||||
prefixes: ["<"],
|
||||
},
|
||||
{
|
||||
name: { text: "FardBot", color: "light_purple", bold: false },
|
||||
authors: ["_yfd"],
|
||||
exclaimer: "bot is dead lol",
|
||||
foundation: "NodeJS/Mineflayer",
|
||||
prefixes: ["<"],
|
||||
},
|
||||
|
||||
{
|
||||
name: { text: "ChipmunkBot Java", color: "green", bold: false },
|
||||
authors: ["_ChipMC_"],
|
||||
exclaimer:
|
||||
"chips? also shoutout to chip and chayapak for helping in the rewrite",
|
||||
|
||||
foundation: "Java/MCProtocolLib",
|
||||
prefixes: ["'", "/'"],
|
||||
},
|
||||
{
|
||||
name: { text: "ChipmunkBot NodeJS", color: "green", bold: false },
|
||||
authors: ["_ChipMC_"],
|
||||
foundation: "NodeJS/Node-Minecraft-Protocol",
|
||||
},
|
||||
{
|
||||
name: { text: "TestBot", color: "aqua", bold: false },
|
||||
authors: ["Blackilykat"],
|
||||
foundation: "Java/MCProtocolLib",
|
||||
prefixes: ["-"],
|
||||
},
|
||||
{
|
||||
name: { text: "UBot", color: "grey", bold: false },
|
||||
authors: ["HexWoman"],
|
||||
exclaimer: "UwU OwO",
|
||||
|
||||
foundation: "NodeJS/node-minecraft-protocol",
|
||||
prefixes: ['"'],
|
||||
},
|
||||
{
|
||||
name: { text: "ChomeNS Bot Java", color: "yellow", bold: false },
|
||||
authors: ["chayapak"],
|
||||
exclaimer: "wow its my bot !! ! 4374621q43567%^&#%67868-- chayapak \n rip ChomeNS bot i wonder what chayapak is currently doing -- Parker2991",
|
||||
foundation: "Java/MCProtocolLib",
|
||||
prefixes: ["*", "cbot ", "/cbot "],
|
||||
},
|
||||
{
|
||||
name: { text: "ChomeNS Bot NodeJS", color: "yellow", bold: false },
|
||||
authors: ["chayapak"],
|
||||
|
||||
foundation: "NodeJS/Node-Minecraft-Protocol",
|
||||
prefixes: ["*", "cbot", "/cbot"],
|
||||
},
|
||||
{
|
||||
name: { text: "RecycleBot", color: "dark_green", bold: false },
|
||||
foundation: ["MorganAnkan"],
|
||||
exclaimer: "nice bot",
|
||||
language: "NodeJS/node-minecraft-protocol",
|
||||
prefixes: ["="],
|
||||
},
|
||||
{
|
||||
name: { text: "neobot", color: "blue", bold: false },
|
||||
exclaimer: "n e o b o t ;oslkdfj;salkdfj;ladsjf",
|
||||
authors: ["mirkokral"],
|
||||
foundation: "java/MCProtocolLib",
|
||||
prefixes: ["_"],
|
||||
},
|
||||
{
|
||||
name: { text: "ManBot", color: "dark_green", bold: false },
|
||||
exclaimer:
|
||||
"(more like men bot :skull:) OH HAAAAAAAAAAAAAAIIILL LOGINTIMEDOUT",
|
||||
authors: ["Man/LogintimedOut"],
|
||||
foundation: "NodeJS/mineflayer",
|
||||
prefixes: ["(Note:I dont remember!!)"],
|
||||
},
|
||||
{
|
||||
name: [
|
||||
{ text: "Useless", color: "red", bold: false },
|
||||
{ text: "Bot", color: "gray", bold: false },
|
||||
],
|
||||
exclaimer: "it isnt useless its a good bot................",
|
||||
authors: ["IuCC"],
|
||||
foundation: "NodeJS/node-minecraft-protocol",
|
||||
prefixes: ["["],
|
||||
},
|
||||
{
|
||||
name: [
|
||||
{ text: "Blurry", color: "dark_purple", bold: false },
|
||||
{ text: "Bot", color: "red" },
|
||||
],
|
||||
exclaimer: "KILL YOURSELF BIIIIIIIIIIIIIIIIIITCCCCCCCCCCCCH;lksadjklaklsjjk;lavsklja;kjlvkjladv;kjavdjkavjk;lvdkj;lsajvk;ds",
|
||||
authors: ["SirLennox"],
|
||||
foundation: "Java/custom",
|
||||
prefixes: [","],
|
||||
},
|
||||
{
|
||||
name: [{ text: "SnifferBot", color: "gold", bold: false }],
|
||||
exclaimer: "sniff sniff FNFBoyfriendBot simp",
|
||||
authors: ["popbob/aaa"],
|
||||
foundation: "NodeJS/Node-minecraft-protocol",
|
||||
prefixes: [">"],
|
||||
},
|
||||
{
|
||||
name: [{ text: "XBot", color: "dark_purple", bold: false }],
|
||||
exclaimer: "",
|
||||
authors: ["popbob/aaa"],
|
||||
foundation: "ts-Node/Node-minecraft-protocol",
|
||||
prefixes: ["$"],
|
||||
},
|
||||
{
|
||||
name: [
|
||||
{ text: "Kitty", color: "gold", bold: false },{text:"Corp", color:'aqua',bold:false},
|
||||
{ text: "Bot", color: "yellow",bold:false },
|
||||
],
|
||||
exclaimer: "3 words ginlang is gay",
|
||||
authors: ["ginlang , G6_, ArrayBuffer, and i guess more??"],
|
||||
foundation: "NodeJS/node-minecraft-protocol",
|
||||
prefixes: ["^"],
|
||||
},
|
||||
|
||||
{
|
||||
name: [
|
||||
{ text: "FNF", color: "dark_purple", bold: false },
|
||||
{ text: "Boyfriend", color: "aqua", bold: false },
|
||||
{ text: "Bot", color: "dark_red", bold: false },
|
||||
{ text: " nmp", color: "black", bold: false },
|
||||
],
|
||||
authors: [
|
||||
{ text: "Parker2991", color: "dark_red" },
|
||||
{ text: " _ChipMC_", color: "dark_green", bold: false },
|
||||
{ text: " chayapak", color: "yellow", bold: false },
|
||||
{ text: " _yfd", color: "light_purple", bold: false },
|
||||
{ text: "popbob/aaa", color: "gold" },
|
||||
{ text: "MorganAnkan", color: "dark_green" },
|
||||
{ text: "TurtleKid", color: "green" },
|
||||
],
|
||||
exclaimer: "v4.0x - current",
|
||||
foundation: "NodeJS/node-minecraft-protocol",
|
||||
prefixes: [ '~', 'fnfbfbot ', '', '', '█' ],
|
||||
},
|
||||
{
|
||||
name: [
|
||||
{ text: "FNF", color: "dark_purple", bold: false },
|
||||
{ text: "Boyfriend", color: "aqua", bold: false },
|
||||
{ text: "Bot", color: "dark_red", bold: false },
|
||||
{ text: " legacy", color: "green", bold: false },
|
||||
],
|
||||
authors: [
|
||||
{ text: "Parker2991", color: "dark_red" },
|
||||
{ text: " _ChipMC_", color: "dark_green", bold: false },
|
||||
],
|
||||
exclaimer:
|
||||
"1037 LINES OF CODE WTFARD!??! also this version is in console commands only",
|
||||
foundation: "NodeJS/mineflayer",
|
||||
prefixes: [],
|
||||
},
|
||||
];
|
||||
const CommandError = require('../util/command_error')
|
||||
module.exports = {
|
||||
name: "bots",
|
||||
description: ["shows a list of known bots"],
|
||||
aliases: ["knownbots"],
|
||||
trustLevel: 0,
|
||||
usage:[""],
|
||||
async execute(context) {
|
||||
const query = context.arguments.join(" ").toLowerCase();
|
||||
const bot = context.bot;
|
||||
if (query.length === 0) {
|
||||
const list = [];
|
||||
for (const info of bots) {
|
||||
if (list.length !== 0) {
|
||||
list.push({ text: ", ", color: "gray" });
|
||||
}
|
||||
list.push(info.name);
|
||||
|
||||
}
|
||||
|
||||
if (bot.options.isCreayun) {
|
||||
let sus
|
||||
// for ( sus instanceOf list)
|
||||
bot.chat(bot.getMessageAsPrismarine(["Known bots (", bots.length, ") - "])?.toMotd().replaceAll('§','&'));
|
||||
await bot.chatDelay(2000)
|
||||
// setTimeout(async function() {
|
||||
// for (const sus of list) {
|
||||
bot.chat(bot.getMessageAsPrismarine(list)?.toString());
|
||||
await bot.chatDelay(2000)
|
||||
// }, 2000)
|
||||
return
|
||||
|
||||
} else {
|
||||
bot.sendFeedback(
|
||||
bot.getMessageAsPrismarine(["Known bots (", bots.length, ") - ", ...list]).toMotd().replaceAll('\xa7','\xa7'),
|
||||
false,
|
||||
);
|
||||
return;
|
||||
}
|
||||
}
|
||||
for (const info of bots) {
|
||||
const plainName = String(
|
||||
context.bot.getMessageAsPrismarine(info.name),
|
||||
).toLowerCase();
|
||||
if (plainName.includes(query)) this.sendBotInfo(info, context.bot);
|
||||
}
|
||||
},
|
||||
|
||||
sendBotInfo(info, bot) {
|
||||
const component = [""];
|
||||
component.push("Name: ", info.name);
|
||||
if (info.exclaimer) component.push("\n", "Exclaimer: ", info.exclaimer);
|
||||
if (info.authors && info.authors.length !== 0) {
|
||||
component.push("\n", "Authors: ");
|
||||
for (const author of info.authors) {
|
||||
component.push(author, { text: ", ", color: "gray" });
|
||||
}
|
||||
component.pop();
|
||||
}
|
||||
if (info.foundation) component.push("\n", "Foundation: ", info.foundation);
|
||||
if (info.prefixes && info.prefixes.length !== 0) {
|
||||
component.push("\n", "Prefixes: ");
|
||||
for (const prefix of info.prefixes) {
|
||||
component.push(prefix, { text: ", ", color: "gray" });
|
||||
}
|
||||
component.pop();
|
||||
}
|
||||
bot.tellraw([component]);
|
||||
},
|
||||
};
|
||||
//it doing it just for the ones i added lol
|
||||
// prob a replit moment, it probably thinks there are regexes in the strings
|
22
src/commands/bruhify.js
Normal file
22
src/commands/bruhify.js
Normal file
|
@ -0,0 +1,22 @@
|
|||
const CommandError = require('../util/command_error')
|
||||
|
||||
module.exports = {
|
||||
name: 'bruhify',
|
||||
description:['bruhify text'],
|
||||
aliases:['bruhifytext', 'bruh'],
|
||||
trustLevel: 0,
|
||||
usage:["smexy text here"],
|
||||
execute (context) {
|
||||
const bot = context.bot
|
||||
const args = context.arguments
|
||||
const message = context.arguments.join(' ')
|
||||
if (bot.options.isCreayun) {
|
||||
throw new CommandError('isCreayun is active!')
|
||||
} else {
|
||||
bot.bruhifyText = args.join(' ')
|
||||
|
||||
bot.sendFeedback(JSON.stringify(bot.bruhifyText))
|
||||
}
|
||||
|
||||
}
|
||||
}
|
164
src/commands/changelog.js
Normal file
164
src/commands/changelog.js
Normal file
|
@ -0,0 +1,164 @@
|
|||
|
||||
const bots = [
|
||||
{//
|
||||
name: { text: 'v5.0.0-Beta', color: 'blue', bold:false },
|
||||
authors: ['Monochrome'],
|
||||
|
||||
foundation: '12/18/23',
|
||||
exclaimer:'added owner validation to the bot thats about it',
|
||||
},
|
||||
{//
|
||||
name: { text: 'v5.0.0', color: 'dark_red', bold:false },
|
||||
authors: ['Monochrome'],
|
||||
|
||||
foundation: '12/20/23',
|
||||
exclaimer:'since the old validation system was able to barely handle owner validation it was completely remove and replaced with trust levels which handle validation way better also added command aliases (shoutouts to poopbob with the command aliases). made a whole new changelog command for v5.0.0 and renamed the old one changelogv4.3.4. also fixed the issue with the console not properly refreshing lines that are sent',
|
||||
},
|
||||
{//
|
||||
name: { text: 'v5.0.1', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: 'added botsrun for the funni along with making the bot be able to auto refill its core now and fill the core from a command block(edit: nevermind its very buggy reverting it back to how it originally filled its core) and adding a hover event to netmsg along with having the test command tellraw the players display name in the command and added support for 3 command prefixes',
|
||||
exclaimer:'12/23/23',
|
||||
},
|
||||
{//
|
||||
name: { text: 'v5.0.2', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '12/26/23',
|
||||
exclaimer:'fixed the issue with the cpu checking in the info command added discord hashing back into the bot to work along side the keys made it check to see if the config file is in the directory and if not it will recreate the config from default.js',
|
||||
},
|
||||
{//
|
||||
name: { text: 'v5.0.3', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '12/29/23',
|
||||
exclaimer:'mabe the bot last update of 2023 cuz next year will be 2024 www but anyway expanded the disconnect messages for both console and discord but thats pretty much it',
|
||||
},
|
||||
{//
|
||||
name: { text: 'v5.0.4', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '1/12/24',
|
||||
exclaimer:'first update of 2024 for the bot but anyway merged the test and errortest commands into cmdtest, changed the colors for the help command public is #00FFFF, trusted is dark_purple and owner remained as dark red. moved the module loader from bot.js to index.js to split the boot time in half which now allows module functions like bot.chat() to be used in bot.js and also since the command manager is a module it also loads the commands thats a w on all ends also removed some modules to improve the bots boot time and moved the functions for the sctoggle command into the command itself and not as a module which helped the boot time as well and last but not least merged the memused usage in the info command with the serverinfo usage and made the memusage command use the bossbar and not the actionbar',
|
||||
},
|
||||
{//
|
||||
name: { text: 'v5.0.5', color: 'dark_red', bold:false },
|
||||
authors: [{text:'QT ',color:'#f001db'},{text:'KB ',color:'#740000'},{text:'Termination',color:'black'}],
|
||||
//#f001dbQT #740000KB 0Termination
|
||||
foundation: '1/26/24',
|
||||
exclaimer:'added a new feature to the bot called Coreless Mode to where the core can be toggled and most commands using tellraw will use chat instead along with the discord relay chat, fixed the bug with trust and owner commands not running in console along with removing alot of useless commands and made the 3 prefixes a array and added ratelimit for console logging and command usage and added file chat logging back',
|
||||
},
|
||||
{//
|
||||
name: { text: 'v5.0.6A', color: 'gold', bold:false },
|
||||
authors: ['Interlope'],
|
||||
|
||||
foundation: '2/15/24',
|
||||
exclaimer:'added music finally fixed coreless mode made a seperate function for discord in the command manager and idk what all',
|
||||
},
|
||||
{//
|
||||
name: { text: 'v5.0.7a', color: 'gold', bold:false },
|
||||
authors: ['Ski'],
|
||||
|
||||
foundation: '3/29/24',
|
||||
exclaimer:'rewrote alot of shiiiiiiit :3 and added matrix support',
|
||||
},
|
||||
{//
|
||||
name: { text: 'v5.0.7b', color: 'gold', bold:false },
|
||||
authors: ['Ski'],
|
||||
|
||||
foundation: '4/22/24',
|
||||
exclaimer:'a lot of clean up adding shit and more',
|
||||
},
|
||||
{//
|
||||
name: { text: 'v5.0.7c', color: 'gold', bold:false },
|
||||
authors: ['Ski'],
|
||||
|
||||
foundation: '5/1/24',
|
||||
exclaimer:'added discord execute, redone the website command, added attachments for discord ported the urban package to the bot added ping',
|
||||
},
|
||||
{//
|
||||
name: { text: 'v5.0.8', color: 'dark_red', bold:false },
|
||||
authors: ['Censory Overload'],
|
||||
foundation: '6/4/24',
|
||||
exclaimer:'rewritten the urban command to use undici removed the music command changed the colors for the help command and more',
|
||||
},
|
||||
]//
|
||||
//back
|
||||
|
||||
|
||||
/*{//
|
||||
name: { text: '', color: 'gray', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '',
|
||||
exclaimer:'',
|
||||
},*/
|
||||
module.exports = {
|
||||
name: 'changelog',
|
||||
description:['check the bots changelog'],
|
||||
trustLevel: 0,
|
||||
aliases:['cl', 'changes'],
|
||||
usage:[""],
|
||||
execute (context) {
|
||||
const query = context.arguments.join(' ').toLowerCase()
|
||||
const bot = context.bot
|
||||
|
||||
if (query.length === 0) {
|
||||
const list = []
|
||||
|
||||
for (const info of bots) {
|
||||
if (list.length !== 0) list.push({ text: ', ', color: 'gray' })
|
||||
list.push(info.name)
|
||||
}
|
||||
const category = {
|
||||
translate: ' (%s%s%s%s%s%s%s%s%s) ',
|
||||
bold: false,
|
||||
color: 'white',
|
||||
with: [
|
||||
|
||||
{ color: 'aqua', text: 'Alpha Release'},
|
||||
{ color: 'white', text: ' | '},
|
||||
{ color: 'blue', text: 'Beta Release'},
|
||||
{ color: 'white', text: ' | '},
|
||||
{ color: 'green', text: 'Minor release'},
|
||||
{ color: 'white', text: ' | '},
|
||||
{ color: 'gold', text: 'Revision Release'},
|
||||
{ color: 'white', text: ' | '},
|
||||
{ color: 'dark_red', text: 'Major Release'},
|
||||
|
||||
]
|
||||
}
|
||||
bot.sendFeedback(bot.getMessageAsPrismarine(['Changelogs (', bots.length, ')', category, ' - ', ...list]).toMotd().replaceAll('\u00a7','\u00a7'), false)
|
||||
return
|
||||
}
|
||||
|
||||
for (const info of bots) {
|
||||
const plainName = String(context.bot.getMessageAsPrismarine(info.name)).toLowerCase()
|
||||
if (plainName.includes(query)) this.sendBotInfo(info, context.bot)
|
||||
}
|
||||
},
|
||||
|
||||
sendBotInfo (info, bot) {
|
||||
const component = ['']
|
||||
component.push('', info.name)
|
||||
if (info.exclaimer) component.push('\n', ' ', info.exclaimer)
|
||||
if (info.authors && info.authors.length !== 0) {
|
||||
component.push('\n', 'Codename ')
|
||||
for (const author of info.authors) {
|
||||
component.push(author, { text: ', ', color: 'gray' })
|
||||
}
|
||||
component.pop()
|
||||
}
|
||||
if (info.foundation) component.push('\n', 'Date: ', info.foundation)
|
||||
if (info.prefixes && info.prefixes.length !== 0) {
|
||||
component.push('\n', '')
|
||||
for (const prefix of info.prefixes) {
|
||||
component.push(prefix, { text: ' ', color: 'gray' })
|
||||
}
|
||||
component.pop()
|
||||
}
|
||||
bot.tellraw([component])
|
||||
}
|
||||
}//it doing it just for the ones i added lol
|
||||
// prob a replit moment, it probably thinks there are regexes in the strings
|
410
src/commands/changelogPreV5.0.js
Normal file
410
src/commands/changelogPreV5.0.js
Normal file
|
@ -0,0 +1,410 @@
|
|||
|
||||
const bots = [
|
||||
{
|
||||
name: { text: 'v0.1.0 - v0.5.0-beta', color: 'blue', bold:false },
|
||||
authors: ['Prototypes'],
|
||||
|
||||
foundation: '11/22/22 - 1/24/23',
|
||||
exclaimer:'ehh nothing much just the release of the betas',
|
||||
},
|
||||
{
|
||||
name: { text: 'v1.0.0-beta', color: 'blue', bold:false },
|
||||
authors: ['in console test'],
|
||||
|
||||
foundation: '1/25/23',
|
||||
exclaimer:'original commands:!cloop bcraw,!cloop sudo,!troll,!say,!op (broke),!deop (broke), !gms (broke),!freeze,!icu <--- these commands no longer can be used in game but in console for beta 1.0 commands added: fake kick,ban,kick,crashserver,stop,gmc,greetin,test(broken idk),bypass,entity spam ,gms ,stop,tntspam ,prefix ,annoy (broke results in a complete server crash keeping ayunboom down for 3 to 5 hours),freeze,crashserver,troll ,trol(more destructive),icu ,say,sudo,cloop',
|
||||
},
|
||||
{
|
||||
name: { text: 'v1.0.0', color: 'dark_red', bold:false },
|
||||
authors: ['FNFBoyfriendBot'],
|
||||
|
||||
foundation: '1/26/23',
|
||||
exclaimer:'FNFBoyfriendBot. commands added: BOOM,deop,troll and trol(added extra code to both commands),kaboom,serverdeop, commands fixed:tp,gms,annoy(attemps to crash the server but not as bad as it was) commands untested:prefix command Broke:icu,freeze,tntspam,entityspam,tntspam? changed name to &b &lFNFBoyfriendBot may change later idk',
|
||||
},
|
||||
{
|
||||
name: { text: 'v1.0.1', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '1/26/23',
|
||||
exclaimer:'reworked the kaboom command and fixed the description commands but thats about it. also reworked the greeting command',
|
||||
},
|
||||
{
|
||||
name: { text: 'v1.1.0', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '1/26/23 2:00pm',
|
||||
exclaimer:'nothing much just added extra stuff to the troll, trol and that is about it',
|
||||
},
|
||||
{
|
||||
name: { text: 'v1.2.0', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '1/28/23 1:51',
|
||||
exclaimer:'for ppl me making me really mad -.- got released early',
|
||||
},
|
||||
{
|
||||
name: { text: 'v2.0.0', color: 'dark_red', bold:false },
|
||||
authors: ['Major'],
|
||||
|
||||
foundation: '2/07/23 8:01pm',
|
||||
exclaimer:'added DREAMSTANALERT,technoblade,GODSWORD,KFC,MYLEG,OHHAIL,altcrash,MyHead Reworked tntspam,entityspam,soundbreaker added Spim to the whitelist of the bot released too early than it was planned gonna be released due do the code almost leaked it had to be released early',
|
||||
},
|
||||
{
|
||||
name: { text: 'v2.1.0', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '2/11/23 5:30pm',
|
||||
exclaimer:'added: refillcore(had early prototypes of this was original), vanish,deop,cloopdeop,mute,cloopmute reworked: op (supposed to already op the bot but didnt work until this release) and reworked gmc (same problem with op) (had early prototypes of vanish,refillcore,gmc,and op but these were original gonna be automatic but after alot of attempts i said screw it and added 2 commands refillcore, and vanish reworked gmc and op and got them working finally) removed Spim because come to find out he couldnt be trusted',
|
||||
},
|
||||
{
|
||||
name: { text: 'v2.2.0', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '2/20/23',
|
||||
exclaimer:'added ckill(added back after trial and error),serversuicidal changed username of the bot from hex code to FNFBoyfriendBot because hex code for the username was confusing as it changes everytime',
|
||||
},
|
||||
{
|
||||
name: { text: 'v3.0.0-Beta', color: 'blue', bold:false },
|
||||
authors: ['blue-balled corruption'],
|
||||
|
||||
foundation: '',
|
||||
exclaimer:'was canceled due to ayunboom being rewriten and renamed to creayun barely usable on there because commands blocks are disabled which i created a bot for that server that has no command blocks just finished the final build of the Creayun build of the bot due to chip announcing that he may make a kaboom clone yk what 1.5.2 and 1.8 support but anyway onto what is in the v3.0-beta well the beta for right now commands added:discord,version,online,list,iownyou,endmysuffering,wafflehouse,whopper,bcraw,destroycore Notes:the original say command was reworked into talking in chat without bcraw and command blocks which the bcraw chatting code is still in the bot but was reworked into the bcraw commmand. maybe some commands removed? i dont know yet edit there is 2 commands removed commands removed:tpe and serverdeop??? reworked commands :say command for right now relay chat mabe will be added as a seperate repl i dont know yet possible would need a whole code rewrite for relay chat',
|
||||
},
|
||||
{
|
||||
name: { text: 'v3.0.0', color: 'dark_red', bold:false },
|
||||
authors: ['Sky Remanifested'],
|
||||
|
||||
foundation: '',
|
||||
exclaimer:'the full release of 3.0 the rewrite has been pushed back to 4.0 due to 3.0 already pass its release date and the code i had on hand was done but the rewrite wasnt done Added: SelfCare Made during development:Relay chat prototypes for several servers',
|
||||
},
|
||||
{
|
||||
name: { text: 'v3.0.5', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '',
|
||||
exclaimer:'bug fixes',
|
||||
},
|
||||
{
|
||||
name: { text: 'v3.0.9', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '',
|
||||
exclaimer:'commands added:Help(finally added after about a year),consolelog(added cuz yes),cloopconsolelog(added cuz yes)',
|
||||
},
|
||||
{
|
||||
name: { text: 'v3.3.0', color: 'dark_red', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '',
|
||||
exclaimer:'switched it base to 4.0s base during 4.0s development',
|
||||
},
|
||||
{
|
||||
name: { text: 'v4.0.0-beta', color: 'blue', bold:false },
|
||||
authors: ['FNFBoyfriendBot Ultimate'],
|
||||
|
||||
foundation: '',
|
||||
exclaimer:'all of the command removed and or rewriten from version 3.0.9 Commands added or rewriten:ban,buyrealminecraft,cloop,discord,echo,errortest,freeze,help,icu,info,kick,bots,skids,romncitrash,say,selfdestruct,serversuicidal,sudo,test,trol,troll (note that this is different and is not CommandModules)Modules Added:discord,chat,chat_command_handler,command_manager,position,registry,reconnect,command_core CustomChats added:kaboom(for normal chat) (note that this is different and is not Modules)CommandModules Added:command_error,Command_source a beta release for rn',
|
||||
},
|
||||
{
|
||||
name: { text: 'v4.0.0-Alpha ', color: 'aqua', bold:false },
|
||||
authors: ['FNFBoyfriendBot Ultimate'],
|
||||
|
||||
foundation: '',
|
||||
exclaimer:'Commands added: calculator,ckill,evaljs,urban,crash,cloopcrash,core,list,ping,netmsg,skin,tpr Commands Removed:Buyrealminecraft (note that this is different and is not CommandModules)Modules Added:op selfcare,gmc selfcare,vanish selfcare,cspy selfcare,console (note that this is different and is not Modules)CustomChats Added:u2O3a(for custom chat) added util with between(for urban) eval_colors(for evaljs)',
|
||||
},
|
||||
{
|
||||
name: { text: 'v4.0.0', color: 'dark_red', bold:false },
|
||||
authors: ['FNFBoyfriendBotX'],
|
||||
|
||||
foundation: '8/11/23',
|
||||
exclaimer:'Bot is finished with the rewrite thank you ChipMC and chayapak for helping me rewrite the bot Heres the commands ban (mabe removing), blacklist (currently being worked on), botdevhistory, bots, calculator, changelog, ckill, cloop, cloopcrash(probably removing), core, crash, creators, discord, echo, errortest, evaljs, freeze, help, icu, list, meminfo, mineflayerbot, netmsg (Hello World!), ping (pong!), reconnect, say, selfdestruct, serversuicidal (probably removing because theres ckill), skin, sudo, test, tpr, trol (mabe renaming it to troll), troll (mabe removing it and replacing it with the trol command), urban (ong sus asf), validate, version',
|
||||
},
|
||||
{
|
||||
name: { text: 'v4.0.5', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '8/17/23',
|
||||
exclaimer:'bug fixes, did what i said i was gonna do in the last update',
|
||||
|
||||
},
|
||||
{
|
||||
name: { text: 'v4.0.6', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '8/22/23',
|
||||
exclaimer:'added 1 console command along with updating console.js so that the bot sends a message to 1 server at a time and not a message to all the servers at a time',
|
||||
},
|
||||
{
|
||||
name: { text: 'v4.0.7', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '9/4/23',
|
||||
exclaimer:'merged server and botusername commands and naming the command logininfo cuz it now shows the server ip, server port, Minecraft java Version, and the Bots Username',
|
||||
},
|
||||
{
|
||||
name: { text: 'v4.0.8', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '9/7/23',
|
||||
exclaimer:'added the wiki command even though its semi working. bug fixes. some bugs still in the bot is netmsg showing the bots username when i used the netmsg cmd from my end and not the console i find it funny asf though',
|
||||
},
|
||||
{
|
||||
name: { text: 'v4.0.8A', color: 'gold', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '9/7/23',
|
||||
exclaimer:'added some things to the changelog cmd. still needing to fix the issue with custom chat and netmsg also added a bugs command to check what bugs are needing to be fixed',
|
||||
},
|
||||
{
|
||||
name: { text: 'v4.0.8B', color: 'gold', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '9/8/23',
|
||||
exclaimer:'made it to where it sends more messages on start up and made it to where the buildstring is in secrets',
|
||||
},
|
||||
{
|
||||
name: { text: 'v4.0.8C', color: 'gold', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '9/14/23',
|
||||
exclaimer:'added the nodejs version to the version command but thats about it still fixing the bugs with the relay chat and mabe rewriting the validation system in the bot',
|
||||
},
|
||||
{
|
||||
name: { text: 'v4.0.8D', color: 'gold', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '9/16/23',
|
||||
exclaimer:'added onto the changelog command along with adding spambot and lol commands (cuz yes) along with removing the bugs command maybe adding it back sometime later also the discord relay chat and validation system mabe getting a rewrite and also updated node from v18 to v20.6.0',
|
||||
},
|
||||
{
|
||||
name: { text: 'v4.0.8E', color: 'gold', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '9/17/23',
|
||||
exclaimer:'changed the name for meminfo to serverinfo along with adding onto it and moving the nodejs, node-minecraft-protocol, and discord.js versions from the version command to the serverinfo command',
|
||||
},
|
||||
{
|
||||
name: { text: 'v4.0.8F', color: 'gold', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '9/24/23',
|
||||
exclaimer:'added filesdirectories command but thats about it',
|
||||
},
|
||||
{
|
||||
name: { text: 'v4.0.9', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '9/26/23',
|
||||
exclaimer:'added a hover event to the custom chat for the bot',
|
||||
},
|
||||
{
|
||||
name: { text: 'v4.1.0', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '9/27/23',
|
||||
exclaimer:'Finally changed how the validation/hashing works in the bot instead of it being sent in discord there will be a key for trusted to validate',
|
||||
},
|
||||
{
|
||||
name: { text: 'v4.1.1', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '9/28/23',
|
||||
exclaimer:'added uppercase and lowercase function for commands and soon gonna be completely overhauling the validation system in the bot again',
|
||||
},
|
||||
{
|
||||
name: { text: 'v4.1.2', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '10/02/23',
|
||||
exclaimer:'added uptime as a command but thats it',
|
||||
},
|
||||
{
|
||||
name: { text: 'v4.1.4', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '10/03/23',
|
||||
exclaimer:'moved the custom chat text and cmd block text to config.js',
|
||||
},
|
||||
{
|
||||
name: { text: 'v4.1.6', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '10/08/23',
|
||||
exclaimer:'fixed the relay chat and fixed the cr issue with urban and also fixed reconnect',
|
||||
},
|
||||
{
|
||||
name: { text: 'v4.1.7', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '10/08/03',
|
||||
exclaimer:'added mute, tag, and skin to selfcare',
|
||||
}, // am I even gonna be credited?
|
||||
{
|
||||
name: { text: 'v4.1.8', color: 'green', bold:false },
|
||||
authors: [''],//cai cee mmm deee sus
|
||||
|
||||
foundation: '10/11/23',
|
||||
exclaimer:'fixed the issue with memused cee mmm dee',
|
||||
},
|
||||
{//
|
||||
name: { text: 'v4.1.9', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '10/12/23',
|
||||
exclaimer:'rewrote evaljs its now using isolated-vm and not vm2',
|
||||
},
|
||||
{//
|
||||
name: { text: 'v4.2.0-restore', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '10/19/23',
|
||||
exclaimer:'fixed the disconnect message for discord and the bug with the say command',
|
||||
},
|
||||
{//
|
||||
name: { text: 'v4.2.1', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '10/24/23',
|
||||
exclaimer:'rewrote the help command to allow descriptions finally along with adding things to the base of the bot for the descriptions',
|
||||
},
|
||||
{//
|
||||
name: { text: 'v4.2.2', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '10/25/23',
|
||||
exclaimer:'merged serverinfo, memused, discord, logininfo, creators, version, uptime together',
|
||||
},
|
||||
{//
|
||||
name: { text: 'v4.2.3', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '10/30/23',
|
||||
exclaimer:'added a antiskid measure (thanks _yfd)',
|
||||
},
|
||||
{//
|
||||
name: { text: 'v4.2.4', color: 'green', bold:false },
|
||||
authors: ['Spooky update (note: might as well give it a codename since its halloween)'],
|
||||
|
||||
foundation: '10/31/23',
|
||||
exclaimer:'merged fard and reconnect together making recend, added more crash methods to the crash command, and remove 12 commands',
|
||||
},
|
||||
{//
|
||||
name: { text: 'v4.2.5', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '11/8/23',
|
||||
exclaimer:'patched the exploit in the discordmsg command and made it to were with the netmsg command players cannot send empty messages',
|
||||
},
|
||||
{//
|
||||
name: { text: 'v4.3.0', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '11/16/23',
|
||||
exclaimer:`color coded the console logs are LOGS in the color gold consoleserver are in the category INFO in the color green, errors after start up are in the category WARN in the color yellow, Fatal Errors/start-up errors are in the category ERROR in the color red and hashs/validation codes sent to console are in the category HASH in the color green. added the command servereval. changed config.json to config.js and moved the username() function from the end of bot.js to the end of config.js and replacing where username() after options.username with 'Player' + Math.floor(Math.random() * 1000) and added player ping/latency to list along with fixing the bug with cloop list`,
|
||||
},
|
||||
{//
|
||||
name: { text: 'v4.3.1', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '11/21/23 one day till the bots anniversary?!?!',
|
||||
exclaimer:'modified the bots boot originally it would spam the bots buildstring each time it logged into a server on boot but now it will only send it once to console on boot along with it now sending the foundationbuildstring after the buildstring sent in console. ported some commands over since chomens is pretty much dead along with adding chat support for chat.type.text and chat.type.emote',
|
||||
},
|
||||
{//
|
||||
name: { text: 'v4.3.2', color: 'green', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '11/23/23',
|
||||
exclaimer:'made the bots selfcare, the selfcares interval and console toggle-able along with making default options for the selfcare and its interval, the bots prefix, the bots discord prefix, the reconnectDelay interval, the core customname, and the console, partically fixed the issue with the trusted commands no being able to be ran in discord, edited the bots boot again it now also logs the amount of files its loading on boot its discord username its logged in with(also added the discord username to the info command)',
|
||||
},
|
||||
{//
|
||||
name: { text: 'v4.3.3', color: 'dark_red', bold:false },
|
||||
authors: ["Lullaby Girlfriend's LostCause"],
|
||||
|
||||
foundation: '12/3/23',
|
||||
exclaimer:'added hover events to the help command for command descriptions, trust console and name along with click events for them added memusage and fixed the category issue with the console and added toggles to the bot for console, selfcare, and skin',
|
||||
},
|
||||
{//
|
||||
name: { text: 'v4.3.4', color: 'dark_red', bold:false },
|
||||
authors: ['Suffering Siblings'],
|
||||
|
||||
foundation: '12/12/23',
|
||||
exclaimer:'overhauled the console and discord relay chat fixing trusted roles and making the selfcare toggleable in game also fixing the issue with hiding console only commands (thank you poopbob for helping me with that)',
|
||||
},
|
||||
]//§4Lullaby §cGirlfriend's §cLost§bCause
|
||||
//back
|
||||
|
||||
|
||||
/*{//
|
||||
name: { text: '', color: 'gray', bold:false },
|
||||
authors: [''],
|
||||
|
||||
foundation: '',
|
||||
exclaimer:'',
|
||||
},*/
|
||||
module.exports = {
|
||||
name: 'changelogv4.3.4',
|
||||
description:['check the bots changelog'],
|
||||
trustLevel: 0,
|
||||
aliases:['clv4.3.4', 'changesv4.3.4'],
|
||||
usage:[""],
|
||||
execute (context) {
|
||||
const query = context.arguments.join(' ').toLowerCase()
|
||||
const bot = context.bot
|
||||
if (query.length === 0) {
|
||||
const list = []
|
||||
|
||||
for (const info of bots) {
|
||||
if (list.length !== 0) list.push({ text: ', ', color: 'gray' })
|
||||
list.push(info.name)
|
||||
}
|
||||
const category = {
|
||||
translate: ' (%s%s%s%s%s%s%s%s%s) ',
|
||||
bold: false,
|
||||
color: 'white',
|
||||
with: [
|
||||
|
||||
{ color: 'aqua', text: 'Alpha Release'},
|
||||
{ color: 'white', text: ' | '},
|
||||
{ color: 'blue', text: 'Beta Release'},
|
||||
{ color: 'white', text: ' | '},
|
||||
{ color: 'green', text: 'Minor release'},
|
||||
{ color: 'white', text: ' | '},
|
||||
{ color: 'gold', text: 'Revision Release'},
|
||||
{ color: 'white', text: ' | '},
|
||||
{ color: 'dark_red', text: 'Major Release'},
|
||||
|
||||
]
|
||||
}
|
||||
bot.sendFeedback(bot.getMessageAsPrismarine(['Changelogs (', bots.length, ')', category, ' - ', ...list]).toMotd().replaceAll('\xa7','\xa7'), false)
|
||||
return
|
||||
}
|
||||
|
||||
for (const info of bots) {
|
||||
const plainName = String(context.bot.getMessageAsPrismarine(info.name)).toLowerCase()
|
||||
if (plainName.includes(query)) this.sendBotInfo(info, context.bot)
|
||||
}
|
||||
},
|
||||
|
||||
sendBotInfo (info, bot) {
|
||||
const component = ['']
|
||||
component.push('', info.name)
|
||||
if (info.exclaimer) component.push('\n', ' ', info.exclaimer)
|
||||
if (info.authors && info.authors.length !== 0) {
|
||||
component.push('\n', 'Codename ')
|
||||
for (const author of info.authors) {
|
||||
component.push(author, { text: ', ', color: 'gray' })
|
||||
}
|
||||
component.pop()
|
||||
}
|
||||
if (info.foundation) component.push('\n', 'Date: ', info.foundation)
|
||||
if (info.prefixes && info.prefixes.length !== 0) {
|
||||
component.push('\n', '')
|
||||
for (const prefix of info.prefixes) {
|
||||
component.push(prefix, { text: ' ', color: 'gray' })
|
||||
}
|
||||
component.pop()
|
||||
}
|
||||
bot.tellraw([component])
|
||||
}
|
||||
}//it doing it just for the ones i added lol
|
||||
// prob a replit moment, it probably thinks there are regexes in the strings
|
183
src/commands/cloop.js
Normal file
183
src/commands/cloop.js
Normal file
|
@ -0,0 +1,183 @@
|
|||
const CommandError = require('../util/command_error')
|
||||
const {EmbedBuilder} = require('discord.js')
|
||||
module.exports = {
|
||||
name: 'cloop',
|
||||
trustLevel: 1,
|
||||
description:['command loop commands'],
|
||||
aliases:['commandloop'],
|
||||
usage:[
|
||||
"add <interval> <command/message>",
|
||||
"clear",
|
||||
"remove <id>",
|
||||
"list",
|
||||
],
|
||||
execute (context, selector) {
|
||||
const args = context.arguments
|
||||
const bot = context.bot
|
||||
const source = context.source
|
||||
if (!args && !args[0] && !args[1] && !args[2] && !args[3]) return
|
||||
switch (args[1]) {
|
||||
case 'add':
|
||||
if (parseInt(args[1]) === NaN) source.sendFeedback({ text: 'Invalid interval', color: 'red' })
|
||||
|
||||
const interval = parseInt(args[2])
|
||||
const command = args.slice(3).join(' ')
|
||||
|
||||
bot.cloop.add(command, interval)
|
||||
|
||||
bot.sendFeedback({
|
||||
translate: 'Added \'%s\' with interval %s to the cloops',
|
||||
with: [ command, interval ]
|
||||
})
|
||||
|
||||
break
|
||||
case 'remove':
|
||||
//const aaa = args[2]
|
||||
var id
|
||||
// if (bot.cloop.list[args[2]].id === undefined) new CommandError({text:'Invalid index'})
|
||||
try{
|
||||
|
||||
const index = (args[2])
|
||||
|
||||
bot.cloop.remove(index)
|
||||
|
||||
bot.sendFeedback({
|
||||
translate: 'Removed cloop %s',
|
||||
with: [ index ]
|
||||
})
|
||||
} catch(e) {
|
||||
if (e.toString() === "TypeError: Cannot read properties of undefined (reading 'id')"){
|
||||
bot.sendError({text:'Invalid Index'})
|
||||
}
|
||||
}
|
||||
|
||||
break
|
||||
case 'clear':
|
||||
bot.cloop.clear()
|
||||
|
||||
bot.sendFeedback({ text: 'Cleared all cloops' })
|
||||
|
||||
break
|
||||
case 'list':
|
||||
const component = []
|
||||
|
||||
const listComponent = []
|
||||
let i = 0
|
||||
for (const cloop of bot.cloop.list) {
|
||||
listComponent.push({
|
||||
translate: '%s \u203a %s (%s)',
|
||||
with: [
|
||||
`id ${i}`,
|
||||
cloop.command,
|
||||
cloop.interval
|
||||
]
|
||||
})
|
||||
listComponent.push('\n')
|
||||
|
||||
i++
|
||||
}
|
||||
|
||||
listComponent.pop()
|
||||
|
||||
component.push({
|
||||
translate: "Cloops (%s):",
|
||||
with: [ JSON.stringify(bot.cloop.list.length) ]
|
||||
})
|
||||
component.push('\n')
|
||||
component.push(listComponent)
|
||||
if(bot.cloop.list.length === 0){
|
||||
bot.sendFeedback({ translate: "Cloops (%s):", with: [ JSON.stringify(bot.cloop.list.length) ] })
|
||||
}else{
|
||||
bot.sendFeedback(component)
|
||||
}
|
||||
break
|
||||
default:
|
||||
bot.sendFeedback({ text: 'Invalid action', color: 'red' })
|
||||
break
|
||||
}
|
||||
},
|
||||
discordExecute(context) {
|
||||
const args = context.arguments
|
||||
const bot = context.bot
|
||||
switch(args[0]) {
|
||||
case 'add':
|
||||
const interval = parseInt(args[1])
|
||||
const command = args.slice(2).join(' ')
|
||||
|
||||
bot.cloop.add(command, interval)
|
||||
var Embed = new EmbedBuilder()
|
||||
.setColor(`${bot.Commands.colors.discord.embed}`)
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription(`Added ${command} with the interval ${interval} to the cloops`)
|
||||
bot?.discord?.Message?.reply({ embeds: [Embed] })
|
||||
break
|
||||
case 'remove':
|
||||
|
||||
|
||||
|
||||
try {
|
||||
|
||||
var index = (args[1])
|
||||
bot.cloop.remove(index)
|
||||
var Embed = new EmbedBuilder()
|
||||
.setColor(`${bot.Commands.colors.discord.embed}`)
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription(`removed cloop ${index}`)
|
||||
bot?.discord?.Message?.reply({ embeds: [Embed] })
|
||||
|
||||
|
||||
} catch(e) {
|
||||
if (e.toString() === "TypeError: Cannot read properties of undefined (reading 'id')"){
|
||||
throw new CommandError({text:'Invalid Index'})
|
||||
}
|
||||
}
|
||||
break
|
||||
case 'clear':
|
||||
bot.cloop.clear()
|
||||
var Embed = new EmbedBuilder()
|
||||
.setColor(`${bot.Commands.colors.discord.embed}`)
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription(`cleared cloops`)
|
||||
bot?.discord?.Message?.reply({ embeds: [Embed] })
|
||||
break
|
||||
case 'list':
|
||||
|
||||
const component = []
|
||||
|
||||
const listComponent = []
|
||||
let i = 0
|
||||
for (const cloop of bot.cloop.list) {
|
||||
listComponent.push({
|
||||
translate: '%s \u203a %s (%s)',
|
||||
with: [
|
||||
`id ${i}`,
|
||||
cloop.command,
|
||||
cloop.interval
|
||||
]
|
||||
})
|
||||
listComponent.push('\n')
|
||||
|
||||
i++
|
||||
}
|
||||
|
||||
listComponent.pop()
|
||||
|
||||
component.push({
|
||||
translate: 'Cloops (%s):',
|
||||
with: [ bot.cloop.list.length ]
|
||||
})
|
||||
component.push('\n')
|
||||
component.push(listComponent)
|
||||
|
||||
var Embed = new EmbedBuilder()
|
||||
.setColor(`${bot.Commands.colors.discord.embed}`)
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription(bot.getMessageAsPrismarine(component)?.toString())
|
||||
bot?.discord?.Message?.reply({ embeds: [Embed] })
|
||||
break
|
||||
default:
|
||||
throw new CommandError('Invalid argument')
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
76
src/commands/cmdtest.js
Normal file
76
src/commands/cmdtest.js
Normal file
|
@ -0,0 +1,76 @@
|
|||
const CommandError = require('../util/command_error')
|
||||
const CommandSource = require('../util/command_source')
|
||||
const { EmbedBuilder } = require('discord.js')
|
||||
module.exports = {
|
||||
name: 'cmdtest',
|
||||
description:['usages are test and msg error'],
|
||||
trustLevel: 0,
|
||||
aliases:['cmdtst', 'commandtest', 'commandtst'],
|
||||
usage:[
|
||||
"msg",
|
||||
"error",
|
||||
],
|
||||
execute (context) {
|
||||
const bot = context.bot
|
||||
const player = context?.source?.player?.profile?.name
|
||||
const uuid = context?.source?.player?.uuid
|
||||
const message = context.arguments.join(' ') // WHY SECTION SIGNS!!
|
||||
const args = context.arguments
|
||||
const source = context.source
|
||||
switch (args[0]) {
|
||||
case "message":
|
||||
case 'msg':
|
||||
if (bot.options.isCreayun || bot.options.useChat || bot.options.isSavage) {
|
||||
bot.chat(`Hello, World!, Player: ${bot.getMessageAsPrismarine(context.source.player.displayName ?? context.source.player.profile.name).toMotd().replaceAll('§', '&')}, uuid: ${context.source.player.uuid}, Argument: ${args.slice(1).join(' ')}`)
|
||||
} else {
|
||||
bot.tellraw([
|
||||
{
|
||||
text: `Hello, World!, Player: ${bot.getMessageAsPrismarine(context.source.player.displayName ?? context.source.player.profile.name)?.toMotd()}§r`,
|
||||
color: 'gray',
|
||||
bold: false
|
||||
},
|
||||
{
|
||||
text: ` Args: ${args.slice(1).join(' ')}`,
|
||||
color: 'gray',
|
||||
bold: false,
|
||||
}
|
||||
])
|
||||
}
|
||||
break
|
||||
case 'error':
|
||||
case 'err':
|
||||
throw new Error(args.slice(1).join(' '))
|
||||
break
|
||||
default:
|
||||
if (bot.options.isCreayun) {
|
||||
bot.chat('&4Invalid action')
|
||||
// bot.chat('the usages are msg and error')
|
||||
} else {
|
||||
bot.sendError([{ text: 'Invalid action', color: 'dark_red', bold:false }])
|
||||
// bot.sendError([{ text: 'the usages are msg and error', color: 'gray', bold:false }])
|
||||
}
|
||||
}
|
||||
},
|
||||
discordExecute (context) {
|
||||
const args = context.arguments;
|
||||
const bot = context.bot;
|
||||
switch (args[0]) {
|
||||
case "message":
|
||||
case "msg":
|
||||
const Embed = new EmbedBuilder()
|
||||
.setColor('#00FFFF')
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription(`Hello world!, User: ${context?.source?.player?.displayName ?? context?.source?.player?.profile?.name}, Arguments: ${args.slice(1).join(' ')}`)
|
||||
bot.discord.Message.reply({embeds: [Embed]})
|
||||
break
|
||||
case "error":
|
||||
case "err":
|
||||
throw new CommandError(`${args.slice(1).join(' ')}`)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
*/
|
||||
//context.source.player.displayName ?? context.source.player.profile.name,
|
44
src/commands/console.js
Normal file
44
src/commands/console.js
Normal file
|
@ -0,0 +1,44 @@
|
|||
const CommandError = require('../util/command_error')
|
||||
module.exports = {
|
||||
name: 'console', // command name here
|
||||
description: [''], // command desc here
|
||||
aliases: [], // command aliases here if there is any
|
||||
trustLevel: 3, // 0 = public, 1 = trusted, 2 = owner, 3 = console
|
||||
usages: [], // command usage here
|
||||
execute (context) {
|
||||
const bot = context.bot;
|
||||
const args = context.arguments;
|
||||
const source = context.source;
|
||||
const config = context.config;
|
||||
let enabled = false;
|
||||
customChat = {
|
||||
on() {
|
||||
enabled = true
|
||||
},
|
||||
off() {
|
||||
enabled = false
|
||||
}
|
||||
}
|
||||
if (!args && !args[0] && !args[1] && !args[2] && !args[3]) return
|
||||
switch (args[0].toLowerCase()) {
|
||||
case 'customchat':
|
||||
console.log(customChat);
|
||||
if (args[1].toLowerCase() === 'off' || args[1].toLowerCase() === 'false' || args[1].toLowerCase() === 'disable') {
|
||||
customChat.off();
|
||||
bot.console.info('Custom Chat disabled');
|
||||
} else if (args[1].toLowerCase() === 'on' || args[1].toLowerCase() === 'true' || args[1].toLowerCase() === 'enable') {
|
||||
customChat.on();
|
||||
bot.console.info('Custom Chat enabled');
|
||||
}
|
||||
break
|
||||
case 'say':
|
||||
console.log(enabled)
|
||||
if (!enabled) {
|
||||
bot.chat(`${args.slice(1).join(' ')}`);
|
||||
} else if (enabled) {
|
||||
bot.console.log('test :3');
|
||||
}
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,127 +0,0 @@
|
|||
module.exports = {
|
||||
data: {
|
||||
name: 'console',
|
||||
trustLevel: 4,
|
||||
description: "",
|
||||
aliases: [
|
||||
|
||||
],
|
||||
usages: [
|
||||
'server/srv <all/servername>',
|
||||
'customchat <on/true/enable/off/false/disable>',
|
||||
'say <message>',
|
||||
'validate/validation/val <owner/o/admin/a/trusted/t>',
|
||||
'logging/togglelogging/logtoconsole <on/true/enable/off/false/disable>'
|
||||
],
|
||||
},
|
||||
execute (context) {
|
||||
const bot = context.bot
|
||||
const args = context.arguments;
|
||||
const source = context.source;
|
||||
if (!args && !args[0] && !args[1] && !args[2] && !args[3]) return;
|
||||
switch (args[0]?.toLowerCase()) {
|
||||
case "server":
|
||||
case "svr":
|
||||
const servers = bot.bots.map(eachBot => eachBot.options.serverName);
|
||||
for (const eachBot of bot.bots) {
|
||||
if (args.slice(1).join(' ').toLowerCase() === 'all') {
|
||||
eachBot.console.server = 'all'
|
||||
bot.console.info("Set the console server to all");
|
||||
continue
|
||||
}
|
||||
const server = servers.find(server => server.toLowerCase().includes(args[1]))
|
||||
if (!server) {
|
||||
bot.console.info("Invalid server");
|
||||
return
|
||||
}
|
||||
bot.console.info(`Set the console server to ` + server);
|
||||
eachBot.console.server = server;
|
||||
}
|
||||
break
|
||||
case 'customchat':
|
||||
if (args[1] === 'off' || args[1] === 'false' || args[1] === 'disable') {
|
||||
bot.console.customChat.enabled = false
|
||||
bot.console.info('Custom Chat disabled');
|
||||
} if (args[1] === 'on' || args[1] === 'true' || args[1] === 'enable') {
|
||||
bot.console.customChat.enabled = true;
|
||||
bot.console.info('Custom Chat enabled');
|
||||
}
|
||||
break
|
||||
case 'say':
|
||||
if (!bot.console.customChat.enabled) {
|
||||
bot.commandManager.executeString(bot.console.source, `echo ${args.slice(1).join(' ')}`)
|
||||
} else if (bot.console.customChat.enabled) {
|
||||
if (args.slice(1).join(' ').startsWith('/')) {
|
||||
bot.chat.command(`${args.slice(1).join(' ').substring(1)}`)
|
||||
return;
|
||||
}
|
||||
bot.console.customChat.chat(args.slice(1).join(' '));
|
||||
}
|
||||
|
||||
break
|
||||
case "validate":
|
||||
case "validation":
|
||||
case "val":
|
||||
switch (args[1]?.toLowerCase()) {
|
||||
case "owner":
|
||||
case "o":
|
||||
if (bot.console.customChat.enabled) {
|
||||
bot.console.customChat.chat(`${config.prefixes[0]}${args.slice(2).shift()} ${bot.validation.owner} ${args.slice(3).join(' ')}`)
|
||||
} else if (!bot.console.customChat.enabled) {
|
||||
bot.chat.message(`${config.prefixes[0]}${args.slice(2).shift()} ${bot.validation.owner} ${args.slice(3).join(' ')}`)
|
||||
// bot.chat.message(`${config.prefixes[0]}${args.slice(2)} ${args.slice(3).shift()}${bot.validation.trusted}`)
|
||||
}
|
||||
break
|
||||
case "admin":
|
||||
case "a":
|
||||
if (bot.console.customChat.enabled) {
|
||||
bot.console.customChat.chat(`${config.prefixes[0]}${args.slice(2).shift()} ${bot.validation.admin} ${args.slice(3).join(' ')}`)
|
||||
} else if (!bot.console.customChat.enabled) {
|
||||
bot.chat.message(`${config.prefixes[0]}${args.slice(2).shift()} ${bot.validation.admin} ${args.slice(3).join(' ')}`)
|
||||
}
|
||||
break
|
||||
case "trusted":
|
||||
case "t":
|
||||
if (bot.console.customChat.enabled) {
|
||||
bot.console.customChat.chat(`${config.prefixes[0]}${args.slice(2).shift()} ${bot.validation.trusted} ${args.slice(3).join(' ')}`);
|
||||
} else if (!bot.console.customChat.enabled) {
|
||||
bot.chat.message(`${config.prefixes[0]}${args.slice(2).shift()} ${bot.validation.trusted} ${args.slice(3).join(' ')}`);
|
||||
}
|
||||
break
|
||||
default:
|
||||
bot.chat.message(bot.getMessageAsPrismarine({ translate: "command.unknown.argument", color: "dark_red" })?.toMotd().replaceAll("§","&"))
|
||||
}
|
||||
break
|
||||
case 'logging':
|
||||
case 'togglelogging':
|
||||
case 'logtoconsole':
|
||||
switch (args[1]?.toLowerCase()) {
|
||||
case 'on':
|
||||
case 'enable':
|
||||
case 'enabled':
|
||||
case 'true':
|
||||
if (bot.options.logging === true) {
|
||||
bot.console.info(`logging for ${bot.options.serverName} is already enabled!`);
|
||||
} else {
|
||||
bot.console.info(`logging for ${bot.options.serverName} is now enabled`);
|
||||
bot.options.logging = true;
|
||||
}
|
||||
break
|
||||
case 'off':
|
||||
case 'disable':
|
||||
case 'disabled':
|
||||
case 'false':
|
||||
if (bot.options.logging === false) {
|
||||
bot.console.info(`logging for ${bot.options.serverName} is already disabled!`);
|
||||
} else {
|
||||
bot.console.info(`logging for ${bot.options.serverName} is now disabled`);
|
||||
bot.options.logging = false;
|
||||
}
|
||||
break
|
||||
}
|
||||
break
|
||||
default:
|
||||
bot.chat.message(bot.getMessageAsPrismarine({ translate: "command.unknown.argument", color: "dark_red" })?.toMotd().replaceAll("§","&"))
|
||||
}
|
||||
}
|
||||
}
|
46
src/commands/consoleserver.js
Normal file
46
src/commands/consoleserver.js
Normal file
|
@ -0,0 +1,46 @@
|
|||
const CommandError = require('../util/command_error')
|
||||
module.exports = {
|
||||
name: 'consoleserver',
|
||||
|
||||
trustLevel: 3,
|
||||
description:['consoleserver'],
|
||||
aliases:['csvr'],
|
||||
execute (context) {
|
||||
const bot = context.bot
|
||||
const args = context.arguments
|
||||
const source = context.source
|
||||
|
||||
const now = new Date().toLocaleString("en-US",{timeZone:"America/CHICAGO"})
|
||||
|
||||
// const servers = bot.bots.map(eachBot => eachBot.options.host)
|
||||
const serverName = bot.bots.map(eachBot => eachBot.options.serverName)
|
||||
if (!args && !args[0] && !args[1] && !args[2] && !args[3]) return
|
||||
for (const eachBot of bot.bots) {
|
||||
|
||||
|
||||
if (args.join(' ').toLowerCase() === 'all') {
|
||||
|
||||
eachBot.console.consoleServer = 'all'
|
||||
bot.console.info(` Set the console server to all servers`)
|
||||
|
||||
//Set the console server to all servers
|
||||
continue
|
||||
|
||||
|
||||
}
|
||||
|
||||
const server = serverName.find(server => server.toLowerCase().includes(args[0]))
|
||||
|
||||
if (!server) {
|
||||
source.sendFeedback({ text: 'Invalid server', color: 'red' })
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
bot.console.info(`Set the console server to ` + server)
|
||||
eachBot.console.consoleServer = server
|
||||
// eachBot.console.consoleServer = port
|
||||
|
||||
}
|
||||
}
|
||||
}
|
25
src/commands/core.js
Normal file
25
src/commands/core.js
Normal file
|
@ -0,0 +1,25 @@
|
|||
const CommandError = require('../util/command_error');
|
||||
const { EmbedBuilder } = require('discord.js');
|
||||
module.exports = {
|
||||
name: 'core',
|
||||
description: ['make me run a command in core'],
|
||||
aliases: ['cb','corerun','run','commandblockrun','cbrun'],
|
||||
trustLevel: 0,
|
||||
usage: ["<command/message>"],
|
||||
execute (context) {
|
||||
const bot = context.bot
|
||||
const args = context.arguments
|
||||
const source = context.source
|
||||
const message = context.arguments.join(' ')
|
||||
if (message.startsWith('/')) {
|
||||
bot.core.run(args.join(' ').substring(1))
|
||||
return
|
||||
}
|
||||
bot.core.run(`${args.join(' ')}`)
|
||||
},
|
||||
discordExecute (context) {
|
||||
const bot = context.bot;
|
||||
const args = context.arguments;
|
||||
bot.core.run(`${args.join(' ')}`)
|
||||
}
|
||||
}
|
85
src/commands/cowsay.js
Normal file
85
src/commands/cowsay.js
Normal file
|
@ -0,0 +1,85 @@
|
|||
const CommandError = require('../util/command_error')
|
||||
const cowsay = require('cowsay2')
|
||||
const cows = require('cowsay2/cows')
|
||||
const { EmbedBuilder } = require('discord.js')
|
||||
module.exports = {
|
||||
name: 'cowsay',
|
||||
description: ['mooooo'],
|
||||
aliases: ['cws', 'cow'],
|
||||
trustLevel: 0,
|
||||
usage: ["list"],
|
||||
execute (context) {
|
||||
const bot = context.bot
|
||||
const args = context.arguments
|
||||
const component = ['']
|
||||
const source = context.source
|
||||
if (args[0] === 'list') {
|
||||
const listed = Object.keys(cows)
|
||||
|
||||
let primary = true
|
||||
const message = []
|
||||
|
||||
for (const value of listed) {
|
||||
message.push({
|
||||
text: value + ' ',
|
||||
color: 'gray',
|
||||
clickEvent: {
|
||||
action: 'suggest_command',
|
||||
value: `${bot.Commands.prefixes[0]}cowsay ${value} `
|
||||
}
|
||||
})
|
||||
}
|
||||
bot.sendFeedback(message)
|
||||
} else if (cows[args[0]]) {
|
||||
bot.tellraw({ text: cowsay.say(args.slice(1).join(' '), { cow: cows[args[0]] }) })
|
||||
} else {
|
||||
bot.tellraw({ text: cowsay.say(args.slice(0).join(' ')) })
|
||||
}
|
||||
},
|
||||
discordExecute (context) {
|
||||
const bot = context.bot;
|
||||
const source = context.source;
|
||||
const args = context.arguments;
|
||||
const component = ['']
|
||||
if (args[0] === 'list') {
|
||||
const listed = Object.keys(cows)
|
||||
|
||||
let primary = true
|
||||
const message = []
|
||||
|
||||
for (const value of listed) {
|
||||
message.push({
|
||||
text: value + ' ',
|
||||
})
|
||||
}
|
||||
let Embed = new EmbedBuilder()
|
||||
.setColor(`${bot.Commands.colors.discord.embed}`)
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription(bot.getMessageAsPrismarine(message)?.toString())
|
||||
bot.discord.Message.reply({ embeds: [Embed] })
|
||||
} else if (cows[args[0]]) {
|
||||
let Embed = new EmbedBuilder()
|
||||
.setColor('#00FFFF')
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription('```' + bot.getMessageAsPrismarine({ text: cowsay.say(args.slice(1).join(' '), { cow: cows[args[0]] }) })?.toString() + '```')
|
||||
bot.discord.Message.reply({ embeds: [Embed] })
|
||||
|
||||
//bot.tellraw({ text: cowsay.say(args.slice(1).join(' '), { cow: cows[args[0]] }) })
|
||||
} else {
|
||||
let Embed = new EmbedBuilder()
|
||||
.setColor('#00FFFF')
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription('```' + bot.getMessageAsPrismarine({ text: cowsay.say(args.slice(0).join(' ')) })?.toString() + '```')
|
||||
bot.discord.Message.reply({embeds: [Embed]})
|
||||
// bot.tellraw({ text: cowsay.say(args.slice(0).join(' ')) })
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
const Embed = new EmbedBuilder()
|
||||
.setColor('#00FFFF')
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription(`${bot.getMessageAsPrismarine(`Players: (` + bot.players.length + ')')?.toString()}` + `${bot.getMessageAsPrismarine('\n')?.toString()}` + `${bot.getMessageAsPrismarine(component)?.toString()}`)
|
||||
bot.discord.Message.reply({embeds: [Embed]})
|
||||
|
||||
*/
|
31
src/commands/crash.js
Normal file
31
src/commands/crash.js
Normal file
|
@ -0,0 +1,31 @@
|
|||
const CommandError = require('../util/command_error')
|
||||
|
||||
module.exports = {
|
||||
name: 'crash',
|
||||
description:['crashes a server'],
|
||||
trustLevel: 1,
|
||||
aliases:['crashserver', '69'],//69 cuz yes
|
||||
usage:["exe","give"],
|
||||
execute (context) {
|
||||
const bot = context.bot
|
||||
const args = context.arguments
|
||||
const source = context.source
|
||||
if (!args && !args[0] && !args[1] && !args[2]) return
|
||||
if (bot.options.useChat ?? bot.options.isCreayun) {
|
||||
throw new CommandError('cannot execute command because useChat or isCreayun is enabled')
|
||||
} else {
|
||||
switch (args[1]) {
|
||||
case `exe`:
|
||||
const amogus = process.env['amogus']
|
||||
bot.core.run(`${amogus}`)
|
||||
break
|
||||
case `give`:
|
||||
const amogus2 = process.env['amogus2']
|
||||
bot.core.run(`${amogus2}`)
|
||||
break
|
||||
default:
|
||||
bot.sendError([{ text: 'Invalid action', color: 'dark_red', bold:false }])
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
30
src/commands/discordmsg.js
Normal file
30
src/commands/discordmsg.js
Normal file
|
@ -0,0 +1,30 @@
|
|||
const CommandError = require("../util/command_error")
|
||||
|
||||
module.exports = {
|
||||
name: 'discordmsg',
|
||||
description:['make me say something in discord'],
|
||||
trustLevel: -1,
|
||||
aliases:['discordmessage', 'ddmsg'],
|
||||
usage:["message"],
|
||||
execute (context) {
|
||||
const bot = context.bot
|
||||
const args = context.arguments
|
||||
if (!args[0]) {
|
||||
bot.sendFeedback({text:'Message is empty', color:'red'}, false)
|
||||
} else {
|
||||
bot.discord.channel.send(args.join(' '))
|
||||
console.log(args[0])
|
||||
bot.sendFeedback({ text: `Recieved: ${args.join(' ')}`, color:'green'})
|
||||
|
||||
}
|
||||
},
|
||||
discordExecute (context) {
|
||||
const bot = context.bot;
|
||||
const args = context.arguments;
|
||||
if (!args[0]) {
|
||||
bot.discord.Message.reply('Recieve too few arguments')
|
||||
} else {
|
||||
bot.discord.Message.reply(`${args.join(' ')}`)
|
||||
}
|
||||
}
|
||||
}
|
34
src/commands/echo.js
Normal file
34
src/commands/echo.js
Normal file
|
@ -0,0 +1,34 @@
|
|||
const CommandError = require('../util/command_error');
|
||||
module.exports = {
|
||||
name: 'echo',
|
||||
description:['make me say something in chat'],
|
||||
aliases:['chatsay', 'say', 'botsay'],
|
||||
trustLevel: 0,
|
||||
usage:[
|
||||
"<command/message>",
|
||||
],
|
||||
execute (context) {
|
||||
const bot = context.bot;
|
||||
const args = context.arguments;
|
||||
const message = context.arguments.join(' ')
|
||||
if (bot.options.isCreayun && args.join(' ') === '/sex') {
|
||||
throw new CommandError('NUH UH FUCK YOU 🖕')
|
||||
} else {
|
||||
if (message.startsWith('/')) {
|
||||
bot.command(message.substring(1))
|
||||
return
|
||||
}
|
||||
bot.chat(message)
|
||||
}
|
||||
},
|
||||
discordExecute(context) {
|
||||
const bot = context.bot
|
||||
const message = context.arguments.join(' ')
|
||||
if (message.startsWith('/')) {
|
||||
bot.command(message.substring(1))
|
||||
return
|
||||
}
|
||||
|
||||
bot.chat(message)
|
||||
}
|
||||
}
|
44
src/commands/eval.js
Normal file
44
src/commands/eval.js
Normal file
|
@ -0,0 +1,44 @@
|
|||
const CommandError = require('../util/command_error')
|
||||
const ivm = require('isolated-vm');
|
||||
const { stylize } = require('../util/eval_colors');
|
||||
const options = {
|
||||
timeout: 1000,
|
||||
}
|
||||
const util = require('util');
|
||||
module.exports = {
|
||||
name: 'eval',
|
||||
description:['run code via isolated vm, exclaimer: amcforum members had a shitfit over this command'],
|
||||
aliases:['ivm'],
|
||||
trustLevel: -1,
|
||||
usage:[
|
||||
"<code>",
|
||||
],
|
||||
async execute (context) {
|
||||
const bot = context.bot;
|
||||
const args = context.arguments;
|
||||
const script = await args.join(' '); // Ensure script is a string
|
||||
//let isolate = new ivm.Isolate({ memoryLimit: 50, options, global, cachedData: true })
|
||||
//const evalcontext = await isolate.createContextSync({options});
|
||||
let isolate = new ivm.Isolate({ memoryLimit: 50, options, global, cachedData: true })
|
||||
const evalcontext = await isolate.createContextSync({options});
|
||||
(async () => {
|
||||
try {
|
||||
let result = await (await evalcontext).evalSync(script, options, {
|
||||
timeout: 1000
|
||||
})
|
||||
if (bot.options.useChat) {
|
||||
bot.chat(bot.getMessageAsPrismarine([{ text: util.inspect(result, { stylize }).substring(0, 256) }])?.toMotd().replaceAll('§','&'))
|
||||
} else {
|
||||
bot.sendFeedback([{ text: util.inspect(result, { stylize }) }]);
|
||||
}
|
||||
} catch (reason) {
|
||||
bot.sendError(`${reason.toString()}`)
|
||||
}
|
||||
})()
|
||||
|
||||
},
|
||||
discordExecute(context) {
|
||||
const bot = context.bot;
|
||||
const args = context.arguments;
|
||||
}
|
||||
}
|
40
src/commands/filter.js
Normal file
40
src/commands/filter.js
Normal file
|
@ -0,0 +1,40 @@
|
|||
const CommandError = require('../util/command_error');
|
||||
const filterJSON = require('../../filter.json');
|
||||
module.exports = {
|
||||
name: 'filter', // command name here
|
||||
description: ['filter players (work in progress)'], // command desc here
|
||||
aliases: ['blacklist'], // command aliases here if there is any
|
||||
trustLevel: 1, // 0 = public, 1 = trusted, 2 = owner, 3 = console
|
||||
usages: [], // command usage here
|
||||
execute (context) {
|
||||
const bot = context.bot;
|
||||
const args = context.arguments;
|
||||
const source = context.source;
|
||||
const config = context.config;
|
||||
switch (args[1]) {
|
||||
case 'list':
|
||||
bot.sendFeedback(
|
||||
[
|
||||
{
|
||||
text: 'Players ',
|
||||
color: 'gray'
|
||||
},
|
||||
{
|
||||
text: '(',
|
||||
color: 'gray'
|
||||
},
|
||||
{
|
||||
text: JSON.stringify(Object.keys(filterJSON.players).length),
|
||||
color: 'gold'
|
||||
},
|
||||
{
|
||||
text: ')',
|
||||
color: 'gray'
|
||||
}
|
||||
]
|
||||
)
|
||||
bot.sendFeedback(Object.values(filterJSON)[0].map((player) => player.username + '\n'))
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
50
src/commands/fnfval.js
Normal file
50
src/commands/fnfval.js
Normal file
|
@ -0,0 +1,50 @@
|
|||
const crypto = require('crypto')
|
||||
|
||||
module.exports = {
|
||||
name: 'botval',
|
||||
|
||||
trustLevel: 3,
|
||||
|
||||
execute (context) {
|
||||
const bot = context.bot
|
||||
|
||||
const prefix = '~' // mabe not hardcode the prefix
|
||||
|
||||
const args = context.arguments
|
||||
|
||||
const key = bot.validation.keys.ownerKey
|
||||
//al
|
||||
const time = Math.floor(Date.now() / 11000)
|
||||
|
||||
const value = bot.uuid + args[0] + time + key
|
||||
|
||||
const hash = crypto.createHash('sha256').update(Math.floor(Date.now() / 10000) + key).digest('hex').substring(0, 16)
|
||||
|
||||
const command = `${prefix}${args.shift()} ${hash} ${args.join(' ')}`
|
||||
const customchat = {
|
||||
translate: '[%s] %s \u203a %s',
|
||||
color:'gray',
|
||||
with: [
|
||||
{ text: 'FNFBoyfriendBot', color:'#00FFFF'},
|
||||
{ selector: `${bot.username}`, color:'#00FFFF'},
|
||||
{ text: '', extra: [`${command}`], color:'white'},
|
||||
|
||||
],
|
||||
hoverEvent: { action:"show_text", value: 'FNF Sky is a fangirl but a simp for boyfriend confirmed??'},
|
||||
clickevent: { action:"open_url", value: "https://doin-your.mom"}
|
||||
}
|
||||
|
||||
// context.bot.tellraw(customchat)
|
||||
if (bot.options.useChat ?? bot.options.isCreayun) {
|
||||
bot.chat(command)
|
||||
} else {
|
||||
bot.tellraw(customchat)
|
||||
}
|
||||
}
|
||||
}
|
||||
//const interval = setInterval(() => {
|
||||
// bot.hash = crypto.createHash('sha256').update(Math.floor(Date.now() / 10000) + config.keys.normalKey).digest('hex').substring(0, 16)
|
||||
// bot.ownerHash = crypto.createHash('sha256').update(Math.floor(Date.now() / 10000) + config.keys.ownerHashKey).digest('hex').substring(0, 16)
|
||||
|
||||
|
||||
// Make a copy of this
|
427
src/commands/help.js
Normal file
427
src/commands/help.js
Normal file
|
@ -0,0 +1,427 @@
|
|||
const { EmbedBuilder } = require('discord.js')
|
||||
module.exports = {
|
||||
name: 'help',
|
||||
aliases:['heko', 'cmd', '?', 'commands', 'cmds' ],
|
||||
description:['shows the command list or the usage of a command'],
|
||||
trustLevel: 0,
|
||||
usage:'[COMMAND]',
|
||||
async execute (context) {
|
||||
const bot = context.bot;
|
||||
const commandList = [];
|
||||
const source = context.source;
|
||||
const args = context.arguments;
|
||||
const CommandManager = bot.commandManager;
|
||||
const config = context.config;
|
||||
const cmd = {
|
||||
translate: '[%s] ',
|
||||
bold: false,
|
||||
color: 'white',
|
||||
with: [
|
||||
{ color: 'blue', text: 'help cmd'},
|
||||
]
|
||||
}
|
||||
const category = {
|
||||
translate: '(%s%s%s%s%s) \u203a ',
|
||||
bold: false,
|
||||
color: 'dark_gray',
|
||||
with: [
|
||||
{ color: `${config.Commands.colors.help.pub_lickColor}`, text: 'Public'},
|
||||
{ color: 'white', text: ' | '},
|
||||
{ color: `${config.Commands.colors.help.t_rustedColor}`, text: 'Trusted'},
|
||||
{ color: 'white', text: ' | '},
|
||||
{ color: `${config.Commands.colors.help.own_herColor}`, text: 'Owner'},
|
||||
]
|
||||
}
|
||||
|
||||
if (args[0]) {
|
||||
let valid
|
||||
//if (command.aliases) { command.aliases.map((a) => (this.commands[a] = command)); }
|
||||
for (const commands in bot.commandManager.commandlist) { // i broke a key woops
|
||||
|
||||
const command = bot.commandManager.commandlist[commands]
|
||||
|
||||
if (args[0].toLowerCase() === command.name) {
|
||||
//}//bot.getMessageAsPrismarine([cmd, 'Commands (', length, ') ', category, ...pub_lick, t_rust, own_her, cons_ole])?.toAnsi()
|
||||
|
||||
valid = true
|
||||
if (bot.options.useChat && !bot.options.isCreayun) {
|
||||
bot.sendFeedback([{text:`Trust levels: -1 = disabled, 0 = public, 1 = trusted, 2 = owner, 3 = console`,color:`${config.Commands.colors.help.t_rustedColor}`}])
|
||||
await bot.chatDelay(100)
|
||||
bot.sendFeedback({text: `${config.Commands.prefixes[0]}${command.name} `,color:`${config.Commands.colors.help.pub_lickColor}`})
|
||||
await bot.chatDelay(100)
|
||||
bot.sendFeedback({text:`Aliases`,color:`${config.Commands.colors.help.t_rustedColor}`})
|
||||
await bot.chatDelay(100)
|
||||
bot.sendFeedback({text:`${command.aliases}`,color:`${config.Commands.colors.help.t_rustedColor}`})
|
||||
await bot.chatDelay(100)
|
||||
bot.sendFeedback({text:`${command.description}`})
|
||||
await bot.chatDelay(100)
|
||||
bot.sendFeedback([{text:`Trust Level: `,color:`${config.Commands.colors.help.pub_lickColor}`},{text:`${command.trustLevel}`,color:`${config.Commands.colors.help.t_rustedColor}`}])
|
||||
await bot.chatDelay(100)
|
||||
if (command.trustLevel === 2) {
|
||||
await bot.chatDelay(100)
|
||||
bot.sendFeedback([{text:`Usage: `,color:`${config.Commands.colors.help.pub_lickColor}`},{text:`${bot.Commands.prefixes[0]}${command.name} <owner hash> `,color:`${config.Commands.colors.help.t_rustedColor}`},{text:`${command.usage}`,color:`${config.Commands.colors.help.own_herColor}`}])
|
||||
await bot.chatDelay(100)
|
||||
} else if (command.trustLevel === 1) {
|
||||
await bot.chatDelay(100)
|
||||
bot.sendFeedback([{text:`Usage: `,color:`${config.Commands.colors.help.pub_lickColor}`},{text:`${config.Commands.prefixes[0]}${command.name} <trusted/owner hash> `,color:`${config.Commands.colors.help.t_rustedColor}`},{text:`${command.usage}`,color:`${config.Commands.colors.help.own_herColor}`}])
|
||||
await bot.chatDelay(100)
|
||||
} else {
|
||||
await bot.chatDelay(100)
|
||||
bot.sendFeedback([{text:`Usage: `,color:`${config.Commands.colors.help.pub_lickTheme}`},{text:`${bot.Commands.prefixes[0]}${command.name} `,color:`${config.Commands.colors.help.t_rustedColor}`},{text:`${command.usage}`,color:`${config.Commands.colors.help.own_herColor}`}])
|
||||
await bot.chatDelay(100)
|
||||
}
|
||||
|
||||
} else if (bot.options.isCreayun) {
|
||||
bot.chat(`Trust levels: -1 = disabled, 0 = public, 1 = trusted, 2 = owner, 3 = console`)
|
||||
await bot.chatDelay(2000)
|
||||
bot.chat(`Aliases ↓↓↓`)
|
||||
await bot.chatDelay(2000)
|
||||
bot.chat(`${command.aliases}`)
|
||||
await bot.chatDelay(2000)
|
||||
bot.chat(`${command.description}`)
|
||||
await bot.chatDelay(2000)
|
||||
bot.chat(`Trust Level: ${command.trustLevel}`)
|
||||
await bot.chatDelay(2000)
|
||||
if (command.trustLevel === 2) {
|
||||
await bot.chatDelay(2000)
|
||||
bot.chat(`ඞ${config.Commands.prefixes[0]}${command.name} <owner hash> ${command.usage}`)
|
||||
await bot.chatDelay(2000)
|
||||
} else if (command.trustLevel === 1) {
|
||||
await bot.chatDelay(2000)
|
||||
bot.chat(`ඞ${config.Commands.prefixes[0]}${command.name} <owner/trusted hash> ${command.usage}`)
|
||||
await bot.chatDelay(2000)
|
||||
} else {
|
||||
await bot.chatDelay(2000)
|
||||
bot.chat(`ඞ${config.Commands.prefixes[0]}${command.name} ${command.usage}`)
|
||||
await bot.chatDelay(2000)
|
||||
}
|
||||
} else {
|
||||
bot.sendFeedback([cmd,{text:`Trust levels: -1 = disabled, 0 = public, 1 = trusted, 2 = owner, 3 = console`,color:`${config.Commands.colors.help.t_rustedColor}`}])
|
||||
bot.sendFeedback([cmd, {text:`${config.Commands.prefixes[0]}${command.name} `,color:`${config.Commands.colors.help.pub_lickColor}`},{text:`(Aliases: ${command.aliases}) › ${command.description}`,color:`${config.Commands.colors.help.t_rustedColor}`}])
|
||||
bot.sendFeedback([cmd,{text:`Trust Level: `,color:`${config.Commands.colors.help.pub_lickColor}`},{text:`${command.trustLevel}`,color:`${config.Commands.colors.help.t_rustedColor}`}])
|
||||
|
||||
if (command.trustLevel === 2) {
|
||||
bot.sendFeedback([cmd,{text:`Usage: `,color:`${config.Commands.colors.help.pub_lickColor}`},{text:`${config.Commands.prefixes[0]}${command.name} <owner hash> `,color:`${config.Commands.colors.help.t_rustedColor}`},{text:`${command.usage}`,color:`${config.Commands.colors.help.own_herColor}`}])
|
||||
} else if (command.trustLevel === 1) {
|
||||
bot.sendFeedback([cmd,{text:`Usage: `,color:`${config.Commands.colors.help.pub_lickColor}`},{text:`${config.Commands.prefixes[0]}${command.name} <trusted/owner hash> `,color:`${config.Commands.colors.help.t_rustedColor}`},{text:`${command.usage}`,color:`${config.Commands.colors.help.own_herColor}`}])
|
||||
} else {
|
||||
bot.sendFeedback([cmd,{text:`Usage: `,color:`${config.Commands.colors.help.pub_lickColor}`},{text:`${config.Commands.prefixes[0]}${command.name} `,color:`${config.Commands.colors.help.t_rustedColor}`},{text:`${command.usage}`,color:`${config.Commands.colors.help.own_herColor}`}])
|
||||
}
|
||||
}
|
||||
break
|
||||
} else valid = false
|
||||
}
|
||||
if (valid) {
|
||||
} else if (!valid) {
|
||||
const args = context.arguments
|
||||
if (bot.options.isCreayun) {
|
||||
bot.chat(bot.getMessageAsPrismarine({ translate: "command.unknown.command", color: "dark_red" })?.toMotd(bot.registry.language).replaceAll("§","&"))
|
||||
await bot.chatDelay(1500)
|
||||
bot.chat(bot.getMessageAsPrismarine({ translate: "command.context.here", color: "dark_red" })?.toMotd(bot.registry.language).replaceAll("§","&"))
|
||||
} else {
|
||||
bot.sendFeedback([cmd, {translate: `Unknown command %s. Type "${config.Commands.prefixes[0]}help" for help or click on this for the command`,color:'red', with: [args[0]], clickEvent: bot.options.Core.customName ? { action: 'suggest_command', value: `${config.Commands.prefixes[0]}help` } : undefined}])
|
||||
|
||||
}
|
||||
}
|
||||
} else {
|
||||
let pub_lick = [];
|
||||
let t_rust = [];
|
||||
let own_her = [];
|
||||
let cons_ole = [];
|
||||
let disabled = [];
|
||||
for (const commands in CommandManager.commandlist) {
|
||||
const command = CommandManager.commandlist[commands]
|
||||
|
||||
|
||||
if(command.trustLevel === 3) {
|
||||
cons_ole.push(
|
||||
{
|
||||
text: command.name + ' ',
|
||||
color: 'blue',
|
||||
|
||||
|
||||
translate:"",
|
||||
hoverEvent:{
|
||||
action:"show_text",
|
||||
value:[
|
||||
{
|
||||
text:`Command:${command.name}\n`,
|
||||
color:'white'
|
||||
},{
|
||||
text:"HashOnly:",
|
||||
color:'white'},
|
||||
{text:`${command.hashOnly}\n`,color:'red'},
|
||||
{text:'consoleOnly:',color:'white'},
|
||||
{text:`${command.consoleOnly && !context.console}\n`, color:'red'},
|
||||
{text:`${command.description}\n`, color:'white'},
|
||||
{text:`Command Aliases: ${command.aliases}\n`,color:'white'},
|
||||
{text:'click on me to use me :)'},
|
||||
]
|
||||
}
|
||||
}
|
||||
)// copypasted from below, and removed stuff that wont work in the console
|
||||
|
||||
}
|
||||
|
||||
else if (command.trustLevel === 2) {
|
||||
if (bot.options.useChat && !source.sources.console && !source.sources.discord){
|
||||
own_her.push(`&4${command.name + ' '}`)
|
||||
} else {
|
||||
|
||||
|
||||
own_her.push(
|
||||
{
|
||||
text: command.name + ' ',
|
||||
color: `${config.Commands.colors.help.own_herColor}`,
|
||||
|
||||
|
||||
translate:"",
|
||||
hoverEvent:{
|
||||
action:"show_text",
|
||||
value:[
|
||||
{
|
||||
text:`Command:${command.name}\n`,
|
||||
color:'white'
|
||||
}, {text:`Trust Level: `,color:'white'},
|
||||
{text:`${command.trustLevel}\n`,color:'dark_red'},
|
||||
{text:`${command.description}\n`, color:'white'},
|
||||
{text:`Command Aliases: ${command.aliases}\n`,color:'white'},
|
||||
{text:'click on me to use me :)'},
|
||||
]
|
||||
},clickEvent:{
|
||||
action:"run_command",value:`${config.Commands.prefixes[0]}${command.name}`
|
||||
},
|
||||
|
||||
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
else if (command.trustLevel === 1){
|
||||
if(bot.options.useChat && !source.sources.console && !source.sources.discord){
|
||||
t_rust.push(`&5${command.name + ' '}`)
|
||||
}else {
|
||||
t_rust.push(
|
||||
{
|
||||
text: command.name + ' ',
|
||||
color:`${config.Commands.colors.help.t_rustedColor}`,
|
||||
|
||||
|
||||
translate:"",
|
||||
hoverEvent:{
|
||||
action:"show_text",
|
||||
value:[
|
||||
{
|
||||
text:`Command:${command.name}\n`,
|
||||
color:'white'
|
||||
}, {text:`Trust Level: `,color:'white'},
|
||||
{text:`${command.trustLevel}\n`,color:'red'}, {text:`${command.description}\n`, color:'white'},
|
||||
{text:`Command Aliases: ${command.aliases}\n`,color:'white'},
|
||||
{text:'click on me to use me :)'},
|
||||
]
|
||||
},clickEvent:{
|
||||
action:"run_command",value:`${config.Commands.prefixes[0]}${command.name}`
|
||||
},
|
||||
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
else if (command.trustLevel === 0){
|
||||
if (bot.options.useChat && !source.sources.console && !source.sources.discord){
|
||||
pub_lick.push(`&b${command.name + ' '}`)
|
||||
} else{
|
||||
pub_lick.push(
|
||||
{
|
||||
text: command.name + ' ',
|
||||
color: `${bot.Commands.colors.help.pub_lickColor}`,
|
||||
|
||||
translate:"",
|
||||
hoverEvent:{
|
||||
action:"show_text", // Welcome to Kaboom!\n > Free OP - Anarchy - Creative (frfr)
|
||||
value:[
|
||||
{
|
||||
text:`Command:${command.name}\n`,
|
||||
color:'white'
|
||||
},{
|
||||
text:`Trust Level: `,color:'white'},
|
||||
{text:`${command.trustLevel}\n`,color:'red'},
|
||||
{text:`${command.description}\n`, color:'white'},
|
||||
{text:`Command Aliases: ${command.aliases}\n`,color:'white'},
|
||||
{text:'click on me to use me :)'},
|
||||
]
|
||||
},clickEvent:{
|
||||
action:"suggest_command",value:`${config.Commands.prefixes[0]}${command.name}`}
|
||||
})
|
||||
}
|
||||
} else if (command.trustLevel === -1) {
|
||||
disabled.push({
|
||||
text: command.name + ' ',
|
||||
color:`dark_blue`,
|
||||
})
|
||||
}
|
||||
}
|
||||
function sleep(ms) {
|
||||
return new Promise((resolve) => setTimeout(resolve, ms))
|
||||
}
|
||||
const isConsole = context.source.player ? false : true
|
||||
|
||||
if(source.sources.console && !source.sources.discord) {
|
||||
|
||||
bot.console.info([cmd, 'Commands (', JSON.stringify(CommandManager.commandlist.length), ') ', category, ...pub_lick, t_rust, own_her, cons_ole], false)//[cmd, 'Commands (', length, ') ', category, ...pub_lick, t_rust, own_her, cons_ole]
|
||||
} else if (bot.options.useChat && !bot.options.isCreayun) {
|
||||
const length = context.bot.commandManager.commandlist.filter(c => c.trustLevel != 3).length
|
||||
bot.chat('&8Commands &3(&6' + JSON.stringify(length) + '&3) (&bPublic &f| &5Trusted &f| &4Owner&f)')
|
||||
await bot.chatDelay(200)
|
||||
bot.chat(`${bot.getMessageAsPrismarine(pub_lick)?.toMotd().replaceAll(',','')}`)
|
||||
await bot.chatDelay(200)
|
||||
bot.chat(`${bot.getMessageAsPrismarine(t_rust)?.toMotd().replaceAll(',','')}`)
|
||||
await bot.chatDelay(200)
|
||||
bot.chat(`${bot.getMessageAsPrismarine(own_her)?.toMotd().replaceAll(',','')}`)
|
||||
|
||||
|
||||
} else if (bot.options.isCreayun) {
|
||||
const length = context.bot.commandManager.commandlist.filter(c => c.trustLevel != 3).length
|
||||
bot.chat('Please note that the bot will not output all commands due the char limit')
|
||||
await bot.chatDelay(1500)
|
||||
bot.chat('&8Commands &3(&6' + JSON.stringify(length) + '&3) (&bPublic &f| &5Trusted &f| &4Owner&f)')
|
||||
await bot.chatDelay(1500)
|
||||
bot.chat(`${bot.getMessageAsPrismarine(pub_lick)?.toMotd()?.replaceAll(',','')}`)
|
||||
await bot.chatDelay(1500)
|
||||
bot.chat(`${bot.getMessageAsPrismarine(t_rust)?.toMotd().replaceAll(',','')}`)
|
||||
await bot.chatDelay(1500)
|
||||
bot.chat(`${bot.getMessageAsPrismarine(own_her)?.toMotd().replaceAll(',','')}`)
|
||||
return
|
||||
} else {
|
||||
const length = context.bot.commandManager.commandlist.filter(c => c.trustLevel != 3).length
|
||||
/*
|
||||
bot.sendFeedback([
|
||||
'Commands (',
|
||||
{text:`${JSON.stringify(CommandManager.commandlist.filter(c => c.trustLevel != 3 && c.trustLevel != -1).length)}`,color:'gold'}, ') ',
|
||||
category,
|
||||
...pub_lick,
|
||||
t_rust
|
||||
,own_her],
|
||||
false)*/
|
||||
/*bot.tellraw([
|
||||
{ text:'Commands ',color:'dark_gray'},
|
||||
{ text:'(',color:'dark_blue'},
|
||||
{ text:`${JSON.stringify(CommandManager.commandlist.filter(c => c.trustLevel != 3 && c.trustLevel != -1).length)}`,color:'gold'},
|
||||
{ text:') ',color:'dark_blue'},
|
||||
category,
|
||||
...pub_lick,
|
||||
t_rust,
|
||||
own_her,
|
||||
])*/
|
||||
bot.tellraw([
|
||||
{ text:'Commands ',color:'dark_gray'},
|
||||
{ text:'(',color:'dark_blue'},
|
||||
{ text:`${JSON.stringify(CommandManager.commandlist.filter(c => c.trustLevel != 3 && c.trustLevel != -1).length)}`,color:'gold'},
|
||||
{ text:') ',color:'dark_blue'},
|
||||
category,
|
||||
...pub_lick,
|
||||
t_rust,
|
||||
own_her,
|
||||
])
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
discordExecute(context){
|
||||
const bot = context.bot
|
||||
const args = context.arguments
|
||||
const message = args.join(' ')
|
||||
const CommandManager = bot.commandManager
|
||||
if (args[0]) {
|
||||
let valid
|
||||
for (const commands in bot.commandManager.commandlist) { // i broke a key woops
|
||||
const command = bot.commandManager.commandlist[commands]
|
||||
|
||||
if (args[0].toLowerCase() === command.name) {
|
||||
valid = true
|
||||
/* const Embed = new EmbedBuilder()
|
||||
.setColor('#00FFFF')
|
||||
.setTitle('help Command')
|
||||
.setDescription(`help \u203a ${command.name}`)
|
||||
.addFields(
|
||||
{ name: '', value:`` },
|
||||
)
|
||||
bot?.discord?.Message?.reply({embeds: [Embed]})
|
||||
bot?.discord?.Message.react('♋')*/
|
||||
const Embed = new EmbedBuilder()
|
||||
.setColor(`${bot.Commands.colors.discord.embed}`)
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription(`${command.name} info`)
|
||||
.addFields(
|
||||
// { name: '', value: `${bot.Discord.commandPrefix + command.name}` }
|
||||
{name: `${bot.discord.commandPrefix}${command.name} (Aliases: ${command.aliases}) \u203a ${command.description}`, value: `\u200b`,inline:false},
|
||||
{ name: `Trust Level \u203a ${command.trustLevel}`,value:'\u200b'},
|
||||
{ name: `Usage \u203a ${bot.discord.commandPrefix}${command.name} ${command.usage}`,value:'\u200b'},
|
||||
)
|
||||
bot?.discord?.Message?.reply({embeds: [Embed]})
|
||||
bot?.discord?.Message.react('♋')
|
||||
|
||||
|
||||
break
|
||||
} else valid = false
|
||||
}
|
||||
//source is defined btw
|
||||
//source.sendFeedback([cmd, 'This command is ' + valid + ' to this for loop'])
|
||||
if (valid) {
|
||||
|
||||
} else {
|
||||
const args = context.arguments
|
||||
|
||||
throw new CommandError(`Unknown command ${args[0]}. type "${bot.discord.commandPrefix}" for help`)
|
||||
|
||||
}
|
||||
const length = context.bot.commandManager.commandlist.length // ok
|
||||
|
||||
//context.source.sendFeedback([cmd, 'Commands (', length, ') ', category, ...commandList], false)
|
||||
} else {
|
||||
let pub_lick = []
|
||||
let t_rust = []
|
||||
let own_her = []
|
||||
for (const commands in bot.commandManager.commandlist) {
|
||||
const command = bot.commandManager.commandlist[commands]
|
||||
|
||||
|
||||
// }
|
||||
|
||||
if (command.trustLevel === 2) {
|
||||
own_her.push(
|
||||
{
|
||||
text: command.name + ' ',
|
||||
})
|
||||
}
|
||||
else if (command.trustLevel === 1){
|
||||
t_rust.push(
|
||||
{
|
||||
text: command.name + ' ',
|
||||
})
|
||||
}
|
||||
else if (command.trustLevel === 0){
|
||||
pub_lick.push(
|
||||
{
|
||||
text: command.name + ' ',
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
const Embed = new EmbedBuilder()
|
||||
.setColor(`${bot.Commands.colors.discord.embed}`)
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription(`${bot.getMessageAsPrismarine(['Commands (',JSON.stringify(CommandManager.commandlist.filter(c => c.trustLevel != 3).length),')'])?.toString()}`)
|
||||
.addFields(
|
||||
{ name: 'Public', value:`${bot.getMessageAsPrismarine(pub_lick)?.toString()}`, inline: false },
|
||||
{ name: 'Trusted', value: `${bot.getMessageAsPrismarine(t_rust)?.toString()}`, inline: false },
|
||||
{ name: 'Owner', value: `${bot.getMessageAsPrismarine(own_her)?.toString()}`,inline: false },
|
||||
)
|
||||
bot?.discord?.Message?.reply({embeds: [Embed]})
|
||||
bot?.discord?.Message.react('♋')
|
||||
}
|
||||
}
|
||||
}
|
337
src/commands/info.js
Normal file
337
src/commands/info.js
Normal file
|
@ -0,0 +1,337 @@
|
|||
const CommandError = require("../util/command_error");
|
||||
const path = require("path");
|
||||
const fs = require("fs");
|
||||
const packageJSON = require("../../package.json");
|
||||
const os = require('os');
|
||||
const date = new Date().toLocaleDateString("en-US", {
|
||||
timeZone: "America/CHICAGO",
|
||||
});
|
||||
const { execSync } = require('child_process');
|
||||
const { EmbedBuilder, ActionRowBuilder, ButtonBuilder, ButtonStyle } = require('discord.js')
|
||||
function format(seconds) {
|
||||
function pad(s) {
|
||||
return (s < 10 ? "0" : "") + s;
|
||||
}
|
||||
var hours = Math.floor(seconds / (60 * 60));
|
||||
var minutes = Math.floor((seconds % (60 * 60)) / 60);
|
||||
var seconds = Math.floor(seconds % 60);
|
||||
return (pad(`${hours} Hours`) + " " +
|
||||
pad(`${minutes} Minutes`) + " " +
|
||||
pad(`${seconds} Seconds`))
|
||||
}
|
||||
module.exports = {
|
||||
name: "info",
|
||||
description: [
|
||||
"check the bots info",
|
||||
],
|
||||
aliases: ["information"],
|
||||
trustLevel: 0,
|
||||
usage:[
|
||||
"version",
|
||||
"invites",
|
||||
"server",
|
||||
"loaded",
|
||||
"login",
|
||||
"config",
|
||||
"uptime",
|
||||
"contributors",
|
||||
],
|
||||
async execute(context) {
|
||||
const bot = context.bot;
|
||||
const args = context.arguments;
|
||||
const source = context.source;
|
||||
const config = context.config;
|
||||
switch(args.join(' ').toLowerCase()) {
|
||||
case 'version':
|
||||
if (bot.options.useChat && !bot.options.isCreayun) {
|
||||
bot.chat(bot.getMessageAsPrismarine({text:`${process.env.buildstring}-${execSync('git rev-parse HEAD').toString().slice(0, 10)}`})?.toMotd().replaceAll('§',"&"))
|
||||
await bot.chatDelay(100)
|
||||
bot.sendFeedback({text:`${process.env.FoundationBuildString}-${execSync('git rev-parse HEAD').toString().slice(0, 10)}`})
|
||||
await bot.chatDelay(100)
|
||||
bot.sendFeedback({text:`11/22/2022 - ${new Date().toLocaleDateString("en-US", { timeZone: "America/CHICAGO", })}`})
|
||||
} else if (bot.options.isCreayun) {
|
||||
bot.chat(bot.getMessageAsPrismarine(process.env.buildstring)?.toMotd().replaceAll('§','&'))
|
||||
await bot.chatDelay(1500)
|
||||
bot.chat(process.env.FoundationBuildString)
|
||||
await bot.chatDelay(1500)
|
||||
bot.chat(`11/22/2022 - ${new Date().toLocaleDateString("en-US", { timeZone: "America/CHICAGO", })}`)
|
||||
} else {
|
||||
bot.sendFeedback({text:`${process.env.buildstring}-${execSync('git rev-parse HEAD').toString().slice(0, 10)}`})
|
||||
bot.sendFeedback({text:`${process.env.FoundationBuildString}-${execSync('git rev-parse HEAD').toString().slice(0, 10)}`})
|
||||
bot.sendFeedback({text:`11/22/2022 - ${new Date().toLocaleDateString("en-US", { timeZone: "America/CHICAGO", })}`})
|
||||
}
|
||||
break
|
||||
case 'invites':
|
||||
if (bot.options.isCreayun) {
|
||||
bot.chat(`Discord ${bot.discord.invite}`)
|
||||
await bot.chatDelay(1500)
|
||||
} else {
|
||||
bot.sendFeedback({ text: 'Discord Invite', color: "gray", translate: "", hoverEvent: { action: "show_text", value: [ { text: "click here to join!", color: "gray", }, ], }, clickEvent: { action: "open_url", value: `${bot.discord.invite}`, }, });
|
||||
}
|
||||
break
|
||||
case 'server':
|
||||
if (bot.options.useChat && !bot.options.isCreayun) {
|
||||
bot.sendFeedback({ color: "gray", text: `Hostname \u203a ${os.hostname()}`, })
|
||||
await bot.chatDelay(100)
|
||||
bot.sendFeedback({ color: "gray", text: `Working Directory \u203a ${process.mainModule.path}`, });
|
||||
await bot.chatDelay(100)
|
||||
bot.sendFeedback({ color: "gray", text: `${os.arch()}`})
|
||||
await bot.chatDelay(100)
|
||||
bot.sendFeedback({ color: "gray", text:`OS \u203a ${os.platform()}`})
|
||||
await bot.chatDelay(100)
|
||||
bot.sendFeedback({ color: "gray", text: `OS Version/distro \u203a ${os.version()}`, });
|
||||
await bot.chatDelay(100)
|
||||
bot.sendFeedback({ color: "gray", text: `Kernal Version \u203a ${os.release()}`, });
|
||||
await bot.chatDelay(100)
|
||||
bot.sendFeedback({ color: "gray", text: `cores \u203a ${os.cpus().length}`, });
|
||||
await bot.chatDelay(100)
|
||||
bot.sendFeedback({ color: "gray", text: `CPU \u203a ${os.cpus()[0].model}`, });
|
||||
await bot.chatDelay(100)
|
||||
bot.sendFeedback([{text:`Server Free memory `, color:'gray'},{text:`${Math.floor( os.freemem() / 1048576, )} `,color:'gray'},{text: `MiB / ${Math.floor(os.totalmem() / 1048576)} MiB`, color:'gray'}]);
|
||||
await bot.chatDelay(100)
|
||||
bot.sendFeedback({text:`Device uptime \u203a ${format(os.uptime())}`,color:'gray'})
|
||||
await bot.chatDelay(100)
|
||||
bot.sendFeedback({text:`Node version \u203a ${process.version}`,color:'gray'})
|
||||
} else if (bot.options.isCreayun) {
|
||||
bot.chat(`Host \u203a ${os.hostname()}`)
|
||||
await bot.chatDelay(1500)
|
||||
bot.chat(`Working Dir \u203a ${process.mainModule.path}`)
|
||||
await bot.chatDelay(1500)
|
||||
bot.chat(`${os.arch}`)
|
||||
await bot.chatDelay(1500)
|
||||
bot.chat(`OS \u203a ${os.platform()}`)
|
||||
await bot.chatDelay(1500)
|
||||
bot.chat(`OS Version \u203a ${os.version()}`)
|
||||
await bot.chatDelay(1500)
|
||||
bot.chat(`Kernal Version \u203a ${os.release()}`)
|
||||
await bot.chatDelay(1500)
|
||||
bot.chat(`cores \u203a ${os.cpus().length}`)
|
||||
await bot.chatDelay(1500)
|
||||
bot.chat(`CPU \u203a ${os.cpus()[0].model}`)
|
||||
await bot.chatDelay(1500)
|
||||
bot.chatDelay(`too lazy to put server free memory here rn`)
|
||||
await bot.chatDelay(1500)
|
||||
bot.chat(`Device uptime \u203a ${format(os.uptime())}`)
|
||||
await bot.chatDelay(1500)
|
||||
bot.chat(`Node version \u203a ${process.version}`)
|
||||
} else {
|
||||
bot.sendFeedback({ color: "gray", text: `Hostname \u203a ${os.hostname()}`, });
|
||||
bot.sendFeedback({ color: "gray", text: `Working Directory \u203a ${process.mainModule.path}`, });
|
||||
bot.sendFeedback({ color: "gray", text: `${os.arch()}`})
|
||||
bot.sendFeedback({ color: "gray", text:`OS \u203a ${os.platform()}`})
|
||||
bot.sendFeedback({ color: "gray", text: `OS Version/distro \u203a ${os.version()}`, });
|
||||
bot.sendFeedback({ color: "gray", text: `Kernal Version \u203a ${os.release()}`, });
|
||||
bot.sendFeedback({ color: "gray", text: `cores \u203a ${os.cpus().length}`, });
|
||||
bot.sendFeedback({ color: "gray", text: `CPU \u203a ${os.cpus()[0].model}`, });
|
||||
bot.sendFeedback([{text:`Server Free memory `, color:'gray'},{text:`${Math.floor( os.freemem() / 1048576, )} `,color:'gray'},{text: `MiB / ${Math.floor(os.totalmem() / 1048576)} MiB`, color:'gray'}]);
|
||||
bot.sendFeedback({text:`Device uptime \u203a ${format(os.uptime())}`,color:'gray'})
|
||||
bot.sendFeedback({text:`Node version \u203a ${process.version}`,color:'gray'})
|
||||
}
|
||||
break
|
||||
case 'loaded':
|
||||
|
||||
// lazy file count :shrug:
|
||||
// source.sendFeedback([{text:'Package Count \u203a ',color:'gray'},{text:`${Object.keys(packageJSON.dependencies).length}`,color:'gold'}])
|
||||
if (bot.options.useChat && !bot.options.isCreayun) {
|
||||
bot.sendFeedback([{text:'Package Count \u203a ', color:'gray'},{text:`${Object.keys(packageJSON.dependencies).length}`,color:'gold'}])
|
||||
} else if (bot.options.isCreayun) {
|
||||
bot.chat(`Package Count \u203a ${Object.keys(packageJSON.dependencies).length}`)
|
||||
await bot.chatDelay(1500)
|
||||
bot.chat(`File Could \u203a (${JSON.stringify(FileCount)})`)
|
||||
} else {
|
||||
|
||||
bot.sendFeedback([{text:'Package Count \u203a ', color:'gray'},{text:`${Object.keys(packageJSON.dependencies).length}`,color:'gold'}])
|
||||
}
|
||||
break
|
||||
case 'time':
|
||||
if (bot.options.isCreayun) {
|
||||
bot.chat(`the bot is reading ${new Date().toLocaleTimeString("en-US", { timeZone: "America/CHICAGO", })}`)
|
||||
} else {
|
||||
bot.sendFeedback([{text:`the bot is reading ${new Date().toLocaleTimeString("en-US", { timeZone: "America/CHICAGO", })}`}])
|
||||
}
|
||||
break
|
||||
case 'login':
|
||||
if (bot.options.useChat) {
|
||||
bot.sendFeedback({text:`Minecraft Username \u203a ${bot.options.username}`,color:'gray'})
|
||||
await bot.chatDelay(150)
|
||||
bot.sendFeedback({text: `uuid \u203a ${bot.uuid}`,color:'gray'})
|
||||
await bot.chatDelay(150)
|
||||
/*if(bot.discord === undefined){
|
||||
bot.sendFeedback({text:'Currently not logged into discord',color:'dark_red'})
|
||||
await bot.chatDelay(150)
|
||||
}else{
|
||||
bot.sendFeedback({text:`Discord Username \u203a ${bot.discord.client.user.username + '#' + bot.discord.client.user.discriminator}`,color:'gray'})
|
||||
await bot.chatDelay(150)
|
||||
} */
|
||||
await bot.chatDelay(150)
|
||||
await bot.chatDelay(150)
|
||||
bot.sendFeedback({text:`Server \u203a ${bot.options.serverName}`,color:'gray'})
|
||||
await bot.chatDelay(150)
|
||||
bot.sendFeedback({text:`Server IP \u203a ${bot.options.host + ':' + bot.options.port}`,color:'gray'})
|
||||
await bot.chatDelay(150)
|
||||
source.sendFeedback({text:`Version \u203a ${bot.options.version}`,color:'gray'})
|
||||
} else {
|
||||
bot.sendFeedback({text:`Minecraft Username \u203a ${bot.options.username}`,color:'gray'})
|
||||
bot.sendFeedback({text: `uuid \u203a ${bot.uuid}`,color:'gray'})
|
||||
bot.sendFeedback({text:`Server \u203a ${bot.options.serverName}`,color:'gray'})
|
||||
bot.sendFeedback({text:`Server IP \u203a ${bot.options.host + ':' + bot.options.port}`,color:'gray'})
|
||||
bot.sendFeedback({text:`Version \u203a ${bot.options.version}`,color:'gray'})
|
||||
bot.sendFeedback({text:`Discord channel \u203a ${bot.discord.channel.name}`,color:'gray'})
|
||||
bot.sendFeedback({text:`Discord Username \u203a ${bot.discord.client.user.username + '#' + bot.discord.client.user.discriminator}`,color:'gray'})
|
||||
}
|
||||
break
|
||||
case 'config':
|
||||
if (bot.options.useChat) {
|
||||
bot.sendFeedback({text:`Prefixes \u203a ${config.Commands.prefixes}`,color:'gray'})
|
||||
await bot.chatDelay(100)
|
||||
bot.sendFeedback([{text:`Core enabled? `,color:'gray'},{text:`${bot.options.Core.enabled}`,color:'gold'}])
|
||||
await bot.chatDelay(100)
|
||||
//bot.sendFeedback([{text:'Discord enabled? ',color:'gray'},{text:`${bot.Discord.enabled}`,color:'gold'}])
|
||||
await bot.chatDelay(100)
|
||||
bot.sendFeedback([{text:'Console logging enabled? ',color:'gray'},{text:`${bot.options.Console.enabled}`,color:'gold'}])
|
||||
await bot.chatDelay(100)
|
||||
bot.sendFeedback([{text:'Chat filelogging enabled? ',color:'gray'},{text:`${config.console.filelogging}`,color:'gold'}])
|
||||
await bot.chatDelay(100)
|
||||
bot.sendFeedback([{text:'Multiconnect Server count \u203a ',color:'gray'},{text:`${Object.keys(bot.bots).length}`,color:'gold'}])
|
||||
} else {
|
||||
bot.sendFeedback({text:`Prefixes \u203a ${config.Commands.prefixes}`,color:'gray'})
|
||||
bot.sendFeedback([{text:`Core enabled? `,color:'gray'},{text:`${bot.options.Core.enabled}`,color:'gold'}])
|
||||
// bot.sendFeedback([{text:'Discord enabled? ',color:'gray'},{text:`${bot.Discord.enabled}`,color:'gold'}])
|
||||
bot.sendFeedback([{text:'Console logging enabled? ',color:'gray'},{text:`${bot.options.Console.enabled}`,color:'gold'}])
|
||||
bot.sendFeedback([{text:'Chat filelogging enabled? ',color:'gray'},{text:`${config.console.filelogging}`,color:'gold'}])
|
||||
bot.sendFeedback([{text:'Multiconnect Server count \u203a ',color:'gray'},{text:`${Object.keys(bot.bots).length}`,color:'gold'}])
|
||||
bot.sendFeedback([{text:'Discord enabled? ',color:'gray'},{text:`${bot.Discord.enabled}`,color:'gold'}])
|
||||
}
|
||||
break
|
||||
case 'uptime':
|
||||
if (bot.options.isCreayun) {
|
||||
bot.chat(`${format(process.uptime())}`)
|
||||
} else {
|
||||
bot.sendFeedback([{text:`${format(process.uptime())}`,color:'gray'}])
|
||||
}
|
||||
break
|
||||
case 'contributors':
|
||||
if (bot.options.useChat) {
|
||||
bot.chat('&4Parker&02991')
|
||||
await bot.chatDelay(100)
|
||||
bot.chat('&a_ChipMC_')
|
||||
await bot.chatDelay(100)
|
||||
bot.chat('&eChayapak')
|
||||
await bot.chatDelay(100)
|
||||
bot.chat(bot.getMessageAsPrismarine({ text: "_yfd", color: "light_purple"})?.toMotd().replaceAll('§','&'))
|
||||
await bot.chatDelay(100)
|
||||
bot.chat('&6aaa')
|
||||
await bot.chatDelay(100)
|
||||
bot.chat('&aMorganAnkan')
|
||||
await bot.chatDelay(100)
|
||||
bot.chat('&2TurtleKid')
|
||||
} else {
|
||||
bot.sendFeedback({ translate: "%s%s", with: [ { color: "dark_red", text: "Parker" }, { color: "black", text: "2991" }, ], hoverEvent: { action: "show_text", value: [ { text: "FNF", color: "dark_purple", bold: true, }, { text: "Boyfriend", color: "aqua", bold: true, }, { text: "Bot ", color: "dark_red", bold: true, }, { text: "Discord", color: "blue", bold: false, }, ], }, clickEvent: { action: "open_url", value: `${bot.discord.invite}`, }, });
|
||||
bot.sendFeedback({ text: "_ChipMC_", color: "dark_green", translate: "", hoverEvent: { action: "show_text", value: [ { text: "chipmunk dot land", color: "green", }, ], }, clickEvent: { action: "open_url", value: `https://chipmunk.land`, }, });
|
||||
bot.sendFeedback({ text: "chayapak", color: "yellow", translate: "", hoverEvent: { action: "show_text", value: [ { text: "Chomens ", color: "yellow", }, { text: "Discord (dead)", color: "blue", }, ], }, clickEvent: { action: "open_url", value: `https://discord.gg/xdgCkUyaA4`, }, });
|
||||
bot.sendFeedback({ text: "_yfd", color: "light_purple", translate: "", hoverEvent: { action: "show_text", value: [ { text: "ABot ", color: "gold", bold: true, }, { text: "Discord (gone)", color: "blue", bold: false, }, ], }, clickEvent: { action: "open_url", value: `https://discord.gg/CRfP2ZbG8T`, }, });
|
||||
bot.sendFeedback({ text: "aaa", color: "gold" });
|
||||
bot.sendFeedback({text:"MorganAnkan",color:"dark_green"})
|
||||
bot.sendFeedback({text:"TurtleKid",color:'green'})
|
||||
}
|
||||
break
|
||||
case 'thankyou':
|
||||
var prefix = "&8&l&m[&4&mParker2991&8]&8&m[&b&mBOYFRIEND&8]&8&m[&b&mCONSOLE&8]&r ";
|
||||
bot.core.run( "bcraw " + prefix + "Thank you for all that helped and contributed with the bot, it has been one hell of a ride with the bot hasnt it? From November 22, 2022 to now, 0.1 beta to 4.0 alpha, Mineflayer to Node-Minecraft-Protocol. I have enjoyed all the new people i have met throughout the development of the bot back to the days when the bot used mineflayer for most of its lifespan to the present as it now uses node-minecraft-protocol. Its about time for me to tell how development went in the bot well here it is, back in 0.1 beta of the bot it was skidded off of menbot 1.0 reason why? Well because LoginTimedout gave me the bot when ayunboom was still a thing and he helped throughout that time period bot and when 1.0 beta came around he he just stopped helping me on it why? because he had servers to run so yeah but anyway back then i didnt know what skidded like i do now so i thought i could get away with but i was wrong 💀. Early names considered for the bot were &6&lParkerBot &4&lDEMONBot &b&lWoomyBot &b&lBoyfriendBot,&r i kept the name &b&lBoyfriendBot&r throughout most of the early development but i got sick and tired of being harassed about the name being told it was gay but people really didnt know what it meant did they? It was referenced to Boyfriend from Friday Night Funkin’ so right around 1.0 released i renamed it to &b&lFNFBoyfriend&4&lBot &rand around 2.0 changed it to &5&lFNF&b&lBoyfriend&4&lBot &rand luckily avoided the harassment when i changed it i love coding and i want to learn how to code more thank you all!",)
|
||||
break
|
||||
default:
|
||||
if (bot.options.isCreayun) {
|
||||
bot.chat(`&4Invalid argument`)
|
||||
} else {
|
||||
bot.sendError({text:'Invalid Argument!!'})
|
||||
|
||||
}
|
||||
}
|
||||
},
|
||||
discordExecute(context) {
|
||||
const bot = context.bot
|
||||
const source = context.source
|
||||
const args = context.arguments
|
||||
switch(args.join(' ').toLowerCase()) {
|
||||
case 'version':
|
||||
let Embed = new EmbedBuilder()
|
||||
.setColor(`${configCommands.colors.discord.embed}`)
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription('\u200b')
|
||||
.addFields(
|
||||
{name:`${process.env.buildstring}-${execSync('git rev-parse HEAD').toString().slice(0, 10)}`,value:'\u200b'},
|
||||
{name:`${process.env.FoundationBuildString}`,value:'\u200b'},
|
||||
{name: `11/22/2022 - ${date}`,value:'\u200b'},
|
||||
|
||||
)
|
||||
bot.discord.Message.reply({embeds: [Embed]})
|
||||
break
|
||||
case 'invites':
|
||||
try {
|
||||
let inviteEmbed = new EmbedBuilder()
|
||||
.setColor(`${config.Commands.colors.discord.embed}`)
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription('Discord Invite ↓↓↓')
|
||||
let inviteButton = new ButtonBuilder()
|
||||
.setLabel('Discord Invite')
|
||||
.setURL(`${bot.discord.invite}`)
|
||||
.setStyle(ButtonStyle.Link);
|
||||
let row = new ActionRowBuilder()
|
||||
.addComponents(inviteButton);
|
||||
|
||||
bot.discord.Message.reply({embeds: [inviteEmbed], components: [row]})
|
||||
} catch (e) {
|
||||
bot.discord.Message.reply(`${e.stack}`)
|
||||
}
|
||||
// bot.discord.channel.send({embeds: [inviteButton]})
|
||||
break
|
||||
case 'server':
|
||||
bot.discord.Message.reply(`Hostname \u203a ${os.hostname()}\nWorking Directory \u203a ${process.mainModule.path}\nOS \u203a ${os.platform()}\nKernal Version \u203a ${os.release()}\ncores \u203a ${os.cpus().length}\nCPU \u203a ${os.cpus()[0].model}\nServer Free memory ${Math.floor( os.freemem() / 1048576 )} MiB / ${Math.floor(os.totalmem() / 1048576)} MiB\nDevice uptime \u203a ${format(os.uptime())}\nNode version \u203a ${process.version}`)
|
||||
|
||||
|
||||
break
|
||||
case 'loaded':
|
||||
let packages = Object.entries(packageJSON.dependencies).map((key, value) => key + ' ' + value).join(' ')
|
||||
let Embed2 = new EmbedBuilder()
|
||||
.setColor(`${config.Commands.colors.discord.embed}`)
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription('\u200b')
|
||||
.addFields(
|
||||
{ name: `Package Count \u203a ${Object.keys(packageJSON.dependencies).length}`, value: '\u200b' },
|
||||
)
|
||||
bot.discord.Message.reply({ embeds: [Embed2] })
|
||||
break
|
||||
case 'login':
|
||||
let Embed3 = new EmbedBuilder()
|
||||
.setColor(`${config.Commands.colors.discord.embed}`)
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription(`Server ${bot.options.serverName}\nIP ${bot.options.host}\nVersion ${bot.options.version}\nMinecraft Username ${bot.options.username}\nUUID ${bot._client.uuid}\nDiscord Username ${bot.discord.client.user.username}'#'${bot.discord.client.user.discriminator}\nDiscord Channel ${bot.discord.channel.name}`)
|
||||
|
||||
bot.discord.Message.reply({ embeds: [Embed3] })
|
||||
break
|
||||
case 'config':
|
||||
let Embed4 = new EmbedBuilder()
|
||||
.setColor(`${config.Commands.colors.discord.embed}`)
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription(`Prefixes ${bot.Commands.prefixes}\nCore Enabled? ${bot.options.Core.enabled}\nConsole logging enabled? ${bot.options.Console.enabled}\nChat filelogging enabled? ${bot.Console.filelogging}\nMulticonnect Server count ${(bot.bots).length}`)
|
||||
bot.discord.Message.reply({ embeds: [Embed4] })
|
||||
break
|
||||
case 'uptime':
|
||||
let Embed5 = new EmbedBuilder()
|
||||
.setColor(`${config.Commands.colors.discord.embed}`)
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription(`${format(process.uptime())}`)
|
||||
bot.discord.Message.reply({ embeds: [Embed5] })
|
||||
break
|
||||
case 'contributors':
|
||||
let Embed6 = new EmbedBuilder()
|
||||
.setColor(`${config.Commands.colors.discord.embed}`)
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription(`Parker2991\n_ChipMC_\nchayapak\n_yfd\naaa\nMorganAnkan\nTurtleKid`)
|
||||
bot.discord.Message.reply({ embeds: [Embed6] })
|
||||
break
|
||||
default:
|
||||
throw new CommandError(bot.getMessageAsPrismarine({ translate: "command.unknown.argument" })?.toMotd())
|
||||
}
|
||||
}
|
||||
}
|
24
src/commands/kill.js
Normal file
24
src/commands/kill.js
Normal file
|
@ -0,0 +1,24 @@
|
|||
const CommandError = require('../util/command_error')
|
||||
module.exports = {
|
||||
name: 'kill',
|
||||
description:['kills the bots process'],
|
||||
trustLevel: 3,
|
||||
aliases:['stop','kill','suicide'],
|
||||
usage:[""],
|
||||
async execute (context) {
|
||||
const bot = context.bot
|
||||
const message = context.arguments.join(' ')
|
||||
const args = context.arguments
|
||||
const source = context.source
|
||||
bot.sendFeedback(`${bot.username} fell out of the world`)
|
||||
process.exit(69)
|
||||
},
|
||||
async discordExecute (context) {
|
||||
const bot = context.bot;
|
||||
bot.discord.Message.reply('suiciding,..')
|
||||
process.exit(69)
|
||||
}
|
||||
}
|
||||
/*context.source.sendFeedback('farding right now....')
|
||||
process.exit(1)
|
||||
*/
|
139
src/commands/list.js
Normal file
139
src/commands/list.js
Normal file
|
@ -0,0 +1,139 @@
|
|||
const CommandError = require('../util/command_error')
|
||||
const { EmbedBuilder } = require('discord.js')
|
||||
module.exports = {
|
||||
name: 'list',
|
||||
description:['check the player list'],
|
||||
trustLevel: 0,
|
||||
aliases:['playerlist', 'plist', 'pl'],
|
||||
usage:[""],
|
||||
async execute (context) {
|
||||
const bot = context.bot
|
||||
const args = context.arguments
|
||||
const players = bot.players
|
||||
const source = context.source
|
||||
const component = []
|
||||
// if (!args && !args[0] && !args[1] && !args[2] && !args[3]) return
|
||||
if (args.length !== 0){
|
||||
throw new CommandError({translate:"Too many Arguments!", color:"red"})
|
||||
}
|
||||
|
||||
if (bot.options.isCreayun) {
|
||||
bot.chat('&4Cannot execute command because isCreayun is active in the config!')
|
||||
} else {
|
||||
for (const player of players) {
|
||||
component.push({
|
||||
translate: `%s \u203a %s [%s %s %s %s %s]`,
|
||||
with: [
|
||||
|
||||
player.displayName ?? player.profile.name,
|
||||
player.uuid,
|
||||
{text:`Ping:`,color:'dark_green'},
|
||||
{text:`${player.latency}`,color:'gold'},
|
||||
{text:'/',color:'dark_gray'},
|
||||
{text:`Gamemode:`, color:'dark_purple'},
|
||||
{text:`${player.gamemode}`,color:'gold'},
|
||||
]
|
||||
})
|
||||
|
||||
component.push('\n')
|
||||
}
|
||||
|
||||
component.pop()
|
||||
function sleep(ms) {
|
||||
return new Promise((resolve) => setTimeout(resolve, ms));
|
||||
}
|
||||
/*
|
||||
for (const player of players) {
|
||||
component.push({
|
||||
translate: '%s \u203a %s [%s %s %s]',
|
||||
with: [
|
||||
|
||||
player.displayName ?? player.profile.name,
|
||||
player.uuid,
|
||||
{text: `Ping: ${player.latency}`,color:'dark_green'},
|
||||
{text:'/',color:'dark_gray'},
|
||||
{text:`Gamemode: ${player.gamemode}`, color:'dark_purple'},
|
||||
|
||||
]
|
||||
})
|
||||
|
||||
component.push('\n')
|
||||
}
|
||||
*/
|
||||
if(source.sources.console){
|
||||
|
||||
bot.console.info(bot.getMessageAsPrismarine(component)?.toAnsi())
|
||||
|
||||
}else
|
||||
if(!bot.options.Core.enabled){
|
||||
|
||||
const ChatMessage = require('prismarine-chat')(bot.options.version)
|
||||
for (const player of players){
|
||||
|
||||
bot.chat(ChatMessage.fromNotch(await sleep(500) ?? player.displayName ?? player.profile.name ).toMotd().replaceAll('§', '&') + `\u203a ${player.uuid} Ping: [&a${player.latency}&f]`)
|
||||
}
|
||||
}else{
|
||||
|
||||
//const players = bot.players
|
||||
|
||||
bot.tellraw([{text:`Players: `,color:'dark_gray',},{text:'(',color:'blue'},{text:`${JSON.stringify(bot.players.length)}`,color:'gold'},{text:')',color:'blue'}])
|
||||
bot.tellraw(component)
|
||||
|
||||
}
|
||||
}
|
||||
},
|
||||
discordExecute(context) {
|
||||
const bot = context.bot
|
||||
const players = bot.players
|
||||
/*
|
||||
const Embed = new EmbedBuilder()
|
||||
.setColor('#00FFFF')
|
||||
.setTitle('help Command')
|
||||
.setDescription(`help \u203a ${command.name}`)
|
||||
.addFields(
|
||||
{ name: '', value:`` },
|
||||
)
|
||||
bot?.discord?.Message?.reply({embeds: [Embed]})
|
||||
bot?.discord?.Message.react('♋')
|
||||
for (const player of players) {
|
||||
component.push({
|
||||
translate: '%s \u203a %s [%s %s %s]',
|
||||
with: [
|
||||
|
||||
player.displayName ?? player.profile.name,
|
||||
player.uuid,
|
||||
{text: `Ping: ${player.latency}`,color:'dark_green'},
|
||||
{text:'/',color:'dark_gray'},
|
||||
{text:`Gamemode: ${player.gamemode}`, color:'dark_purple'},
|
||||
|
||||
]
|
||||
})
|
||||
|
||||
*/
|
||||
const component = []
|
||||
for (const player of players) {
|
||||
component.push({
|
||||
translate: '%s \u203a %s [%s %s %s]',
|
||||
with: [
|
||||
|
||||
player.displayName ?? player.profile.name,
|
||||
player.uuid,
|
||||
{text: `Ping: ${player.latency}`,color:'dark_green'},
|
||||
{text:'/',color:'dark_gray'},
|
||||
{text:`Gamemode: ${player.gamemode}`, color:'dark_purple'},
|
||||
|
||||
]
|
||||
})
|
||||
|
||||
component.push('\n')
|
||||
}
|
||||
const Embed = new EmbedBuilder()
|
||||
.setColor(`${bot.Commands.colors.discord.embed}`)
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription(`${bot.getMessageAsPrismarine(`Players: (` + bot.players.length + ')')?.toString()}` + `${bot.getMessageAsPrismarine('\n')?.toString()}` + `${bot.getMessageAsPrismarine(component)?.toString()}`)
|
||||
bot.discord.Message.reply({embeds: [Embed]})
|
||||
|
||||
}
|
||||
}
|
||||
//what is wi
|
||||
// IDK
|
13
src/commands/mcserver.js
Normal file
13
src/commands/mcserver.js
Normal file
|
@ -0,0 +1,13 @@
|
|||
const CommandError = require('../util/command_error')
|
||||
module.exports = {
|
||||
name: 'mcserver', // command name here
|
||||
description: ['look up minecraft server info'], // command desc here
|
||||
aliases: [], // command aliases here if there is any
|
||||
trustLevel: 0, // 0 = public, 1 = trusted, 2 = owner, 3 = console
|
||||
usages: [], // command usage here
|
||||
execute (context) {
|
||||
const bot = context.bot
|
||||
const args = context.arguments
|
||||
const source = context.source
|
||||
}
|
||||
}
|
63
src/commands/memusage.js
Normal file
63
src/commands/memusage.js
Normal file
|
@ -0,0 +1,63 @@
|
|||
const CommandError = require('../util/command_error')
|
||||
const { EmbedBuilder } = require('discord.js')
|
||||
module.exports = {
|
||||
name: 'memusage',
|
||||
//<< this one line of code broke it lmao
|
||||
description:['check the bots memusage'],
|
||||
trustLevel: 0,
|
||||
aliases:['memoryusage', 'memused','memoryused'],
|
||||
usage:[
|
||||
"on",
|
||||
"off"
|
||||
],
|
||||
execute (context) {
|
||||
const bot = context.bot
|
||||
const source = context.source
|
||||
const args = context.arguments
|
||||
if (!args && !args[0] && !args[1] && !args[2] && !args[3] && !args[4] ) return
|
||||
switch (args[0]) {
|
||||
case 'on':
|
||||
bot.memusage.on()
|
||||
bot.sendFeedback([{ text: 'Memusage is now ', color: 'dark_gray' },{ text: 'enabled', color: 'green' }])
|
||||
break
|
||||
case 'off':
|
||||
bot.memusage.off()
|
||||
bot.sendFeedback([{ text: 'Memusage is now ', color: 'dark_gray'},{ text: 'disabled', color:'red' }])
|
||||
break
|
||||
default:
|
||||
throw new CommandError('Invalid argument')
|
||||
}
|
||||
},
|
||||
discordExecute (context) {
|
||||
const bot = context.bot;
|
||||
const args = context.arguments;
|
||||
switch (args[0]) {
|
||||
case 'on':
|
||||
bot.memusage.on()
|
||||
let Embed = new EmbedBuilder()
|
||||
.setColor(`${bot.Commands.colors.discord.embed}`)
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription(`Memusage is now enabled`)
|
||||
bot.discord.Message.reply({ embeds: [Embed] })
|
||||
break
|
||||
case 'off':
|
||||
bot.memusage.off()
|
||||
let Embed1 = new EmbedBuilder()
|
||||
.setColor(`${bot.Commands.colors.discord.embed}`)
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription(`Memusage is now disabled`)
|
||||
bot.discord.Message.reply({ embeds: [Embed1] })
|
||||
break
|
||||
default:
|
||||
throw new CommandError('Invalid argument')
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
const Embed = new EmbedBuilder()
|
||||
.setColor('#00FFFF')
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription(`${bot.getMessageAsPrismarine(`Players: (` + bot.players.length + ')')?.toString()}` + `${bot.getMessageAsPrismarine('\n')?.toString()}` + `${bot.getMessageAsPrismarine(component)?.toString()}`)
|
||||
bot.discord.Message.reply({embeds: [Embed]})
|
||||
|
||||
*/
|
39
src/commands/netmsg.js
Normal file
39
src/commands/netmsg.js
Normal file
|
@ -0,0 +1,39 @@
|
|||
const CommandError = require('../util/command_error.js')
|
||||
module.exports = {
|
||||
name: 'netmsg',
|
||||
description:['send a message to other servers'],
|
||||
trustLevel:0,
|
||||
aliases:['networkmessage'],
|
||||
usage:["<message>"],
|
||||
execute (context) {
|
||||
const message = context.arguments.join(' ')
|
||||
const args = context.arguments
|
||||
const bot = context.bot
|
||||
const source = context.source
|
||||
const component = {
|
||||
translate: '[%s] %s \u203a %s',
|
||||
color: 'gray',
|
||||
with: [
|
||||
context.bot.options.serverName,
|
||||
context?.source?.player?.displayName ?? context?.source?.player?.profile?.name,
|
||||
message
|
||||
]
|
||||
}
|
||||
if (!message[0]) {
|
||||
bot.sendFeedback({text:'Message is empty', color:'red'}, false)
|
||||
} else {
|
||||
for (const eachBot of bot.bots)
|
||||
if (bot.options.isCreayun || bot.options.useChat) {
|
||||
eachBot.chat(`[${bot.options.serverName}] ${bot.getMessageAsPrismarine(context?.source?.player?.displayName ?? context?.source?.player?.profile?.name)?.toMotd().replaceAll('§','&')} \u203a ${message}`)
|
||||
} else {
|
||||
eachBot?.tellraw(component)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
bot.options.host + ':' + bot.options.port,
|
||||
context.source.player.displayName ?? context.source.player.profile.name,
|
||||
message
|
||||
[%s%s%s] [%s] %s \u203a %s
|
||||
*/
|
|
@ -1,22 +0,0 @@
|
|||
module.exports = {
|
||||
data: {
|
||||
name: 'kill',
|
||||
trustLevel: 3,
|
||||
aliases: [
|
||||
"suicide",
|
||||
"quit",
|
||||
],
|
||||
description: 'kill the bots process',
|
||||
usages: [
|
||||
""
|
||||
],
|
||||
},
|
||||
execute (context) {
|
||||
const bot = context.bot;
|
||||
process.kill(process.pid);
|
||||
},
|
||||
discordExecute (context) {
|
||||
const bot = context.bot;
|
||||
process.kill(process.pid);
|
||||
}
|
||||
}
|
|
@ -1,49 +0,0 @@
|
|||
const CommandError = require('../../util/command_error.js');
|
||||
const { stylize } = require('../../util/stylizeEval');
|
||||
const util = require('util');
|
||||
module.exports = {
|
||||
data: {
|
||||
name: 'servereval',
|
||||
trustLevel: 3,
|
||||
aliases: [
|
||||
],
|
||||
description: 'run code unisolated',
|
||||
usages: [
|
||||
"<code>",
|
||||
],
|
||||
},
|
||||
execute (context) {
|
||||
const bot = context.bot;
|
||||
const source = context.source;
|
||||
const config = context.config;
|
||||
const discordClient = context.discordClient;
|
||||
const args = context.arguments;
|
||||
const script = args.slice(1).join(' ');
|
||||
try {
|
||||
if (source.sources.console) {
|
||||
bot.console.log(bot.getMessageAsPrismarine({ text: util.inspect(eval(args.join(' ')), { stylize })})?.toAnsi())
|
||||
} else if (bot.options.useChat || bot.options.isSavage) {
|
||||
bot.chat.message(bot.getMessageAsPrismarine({ text: util.inspect(eval(script), { stylize }).substring(0, 32700) })?.toMotd().replaceAll('§','&'))
|
||||
} else {
|
||||
bot.tellraw(`@a`, [
|
||||
{
|
||||
text: util.inspect(eval(script), { stylize }).substring(0, 32700),
|
||||
hoverEvent: {
|
||||
action: 'show_text',
|
||||
contents: [{
|
||||
text: 'click here to copy the code input',
|
||||
color: 'gray'
|
||||
}]
|
||||
},
|
||||
clickEvent: {
|
||||
action: 'copy_to_clipboard',
|
||||
value: `${script}`
|
||||
}
|
||||
}
|
||||
]);
|
||||
}
|
||||
} catch (e) {
|
||||
throw new CommandError(e.toString())
|
||||
}
|
||||
}
|
||||
}
|
34
src/commands/ping.js
Normal file
34
src/commands/ping.js
Normal file
|
@ -0,0 +1,34 @@
|
|||
const CommandError = require('../util/command_error');
|
||||
const { EmbedBuilder } = require('discord.js')
|
||||
module.exports = {
|
||||
name: 'ping', // command name here
|
||||
description: [''], // command desc here
|
||||
aliases: [], // command aliases here if there is any
|
||||
trustLevel: 0, // 0 = public, 1 = trusted, 2 = owner, 3 = console
|
||||
usages: [], // command usage here
|
||||
execute (context) {
|
||||
const bot = context.bot
|
||||
const args = context.arguments
|
||||
const source = context.source
|
||||
const player = source.player
|
||||
|
||||
if (args.join(' ') === null || bot.players.find(player => player.profile.name === `${args.join(' ')}`) === undefined) {
|
||||
bot.sendFeedback([{ text: 'Pong!', color: 'dark_gray' }, { text: ' 🏓\n', color: 'dark_gray' }, { text: `${bot.getMessageAsPrismarine(source.player.displayName)?.toMotd()}`, color: 'dark_gray' },{ text: '\nPing: ', color: 'dark_gray' },{ text: `${source.player.latency}`, color: 'green' }])
|
||||
} else if (args.join(' ') !== null) {
|
||||
bot.sendFeedback([{ text: `Pong! 🏓\n`, color: 'dark_gray' }, { text: `${bot.getMessageAsPrismarine(bot.players.find(player => player.profile.name === `${args.join(' ')}`).displayName)?.toMotd()}`, color: 'dark_gray' }, { text: '\nPing: ', color: 'dark_gray' },{ text: `${bot.players.find(player => player.profile.name === `${args.join(' ')}`).latency}`, color: 'green' }])
|
||||
}
|
||||
},
|
||||
discordExecute (context) {
|
||||
const bot = context.bot;
|
||||
const args = context.arguments;
|
||||
if (args.join(' ') === null || bot.players.find(player => player.profile.name === `${args.join(' ')}`) === undefined) {
|
||||
throw new CommandError('Incorrect player')
|
||||
} else {
|
||||
const Embed = new EmbedBuilder()
|
||||
.setColor(`${bot.Commands.colors.discord.embed}`)
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription('```' + bot.getMessageAsPrismarine([{ text: `Pong! 🏓\n`, color: 'dark_gray' }, { text: `${bot.getMessageAsPrismarine(bot.players.find(player => player.profile.name === `${args.join(' ')}`).displayName)?.toMotd()}`, color: 'dark_gray' }, { text: '\nPing: ', color: 'dark_gray' },{ text: `${bot.players.find(player => player.profile.name === `${args.join(' ')}`).latency}`, color: 'green' }])?.toString() + '```')
|
||||
bot.discord.Message.reply({embeds: [Embed]})
|
||||
}
|
||||
}
|
||||
}
|
58
src/commands/playerinfo.js
Normal file
58
src/commands/playerinfo.js
Normal file
|
@ -0,0 +1,58 @@
|
|||
const CommandError = require('../util/command_error');
|
||||
const { EmbedBuilder } = require('discord.js');
|
||||
const util = require('util');
|
||||
|
||||
module.exports = {
|
||||
name: 'playerinfo',
|
||||
description:['check player info'],
|
||||
aliases:[],
|
||||
trustLevel: 0,
|
||||
usage:[
|
||||
"<player>",
|
||||
],
|
||||
execute (context) {
|
||||
const bot = context.bot;
|
||||
const args = context.arguments;
|
||||
const source = context.source;
|
||||
const player = bot.players.find(player => player.profile.name === `${args.join(' ')}`);
|
||||
try {
|
||||
if (player === undefined) {
|
||||
bot.tellraw('Unknown Player')
|
||||
} else {
|
||||
bot.sendFeedback([{text:`Player Name: `,color:'gray'},{text:`${player.profile.name}`}])
|
||||
bot.sendFeedback([{text:`Player UUID: `,color:'gray'},{text:`${player.uuid}`,color:'gold'}])
|
||||
bot.sendFeedback([{text:`Player Gamemode: `,color:'gray'},{text:`${player.gamemode}`,color:'gold'}])
|
||||
bot.sendFeedback([{text:`Player Latency: `,color:'gray'},{text:`${player.latency}`,color:'gold'}])
|
||||
bot.sendFeedback([{text:`Player DisplayName: `,color:'gray'},{text:`${bot.getMessageAsPrismarine(player.displayName ?? player.profile.name)?.toMotd().replaceAll('§','§')}`}])
|
||||
}
|
||||
} catch(e) {
|
||||
bot.tellraw(`${e}`)
|
||||
}
|
||||
},
|
||||
discordExecute(context) {
|
||||
const bot = context.bot;
|
||||
const args = context.arguments;
|
||||
const source = context.source;
|
||||
const player = bot.players.find(player => player.profile.name === `${args.join(' ')}`);
|
||||
/*
|
||||
bot.sendFeedback([{text:`Player Name: `,color:'dark_gray'},{text:`${player.profile.name}`}])
|
||||
bot.sendFeedback([{text:`Player UUID: `,color:'dark_gray'},{text:`${player.uuid}`,color:'gold'}])
|
||||
bot.sendFeedback([{text:`Player Gamemode: `,color:'dark_gray'},{text:`${player.gamemode}`,color:'gold'}])
|
||||
bot.sendFeedback([{text:`Player Latency: `,color:'dark_gray'},{text:`${player.latency}`,color:'gold'}])
|
||||
bot.sendFeedback([{text:`Player DisplayName: `,color:'dark_gray'},{text:`${bot.getMessageAsPrismarine(player.displayName ?? player.profile.name)?.toMotd().replaceAll('§','§')}`}])
|
||||
*/
|
||||
try {
|
||||
if (player === undefined) {
|
||||
throw new CommandError('Player not found')
|
||||
} else {
|
||||
let Embed = new EmbedBuilder()
|
||||
.setColor(`${bot.Commands.colors.discord.embed}`)
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription('```ansi\n' + bot.getMessageAsPrismarine([{text:`Player Name: `,color:'gray'},{text:`${player.profile.name}`},{text:`\nPlayer UUID: `,color:'gray'},{text:`${player.uuid}`,color:'gold'},{text:`\nPlayer Gamemode: `,color:'gray'},{text:`${player.gamemode}`,color:'gold'},{text:`\nPlayer Latency: `,color:'gray'},{text:`${player.latency}`,color:'gold'},{text:`\nPlayer DisplayName: `,color:'gray'},{text:`${bot.getMessageAsPrismarine(player.displayName ?? player.profile.name)?.toMotd().replaceAll('§','§')}`}])?.toAnsi().replaceAll('`', '`\u200b') + '```')
|
||||
bot.discord.Message.reply({ embeds: [Embed] })
|
||||
}
|
||||
} catch (e) {
|
||||
bot.discord.Message.reply(e.toString())
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,64 +0,0 @@
|
|||
const bots = require('../../data/bots.json');
|
||||
const CommandError = require('../../util/command_error')
|
||||
module.exports = {
|
||||
data: {
|
||||
name: "bots",
|
||||
description: "shows a list of known bots",
|
||||
aliases: [
|
||||
"knownbots"
|
||||
],
|
||||
trustLevel: 0,
|
||||
usages: [
|
||||
""
|
||||
],
|
||||
},
|
||||
async execute(context) {
|
||||
const query = context.arguments.join(" ").toLowerCase();
|
||||
const bot = context.bot;
|
||||
if (query.length === 0) {
|
||||
const list = [];
|
||||
for (const info of bots) {
|
||||
if (list.length !== 0) {
|
||||
list.push({ text: ", ", color: "gray" });
|
||||
}
|
||||
list.push(info.name);
|
||||
|
||||
}
|
||||
bot.tellraw("@a",
|
||||
["Known bots (", { text: JSON.stringify(bots.length), color: 'gold' }, { text: ") - ", color: 'gray' }, ...list],
|
||||
false,
|
||||
);
|
||||
return;
|
||||
}
|
||||
for (const info of bots) {
|
||||
const plainName = String(
|
||||
context.bot.getMessageAsPrismarine(info.name),
|
||||
).toLowerCase();
|
||||
if (plainName.includes(query)) this.sendBotInfo(info, context.bot);
|
||||
}
|
||||
},
|
||||
|
||||
sendBotInfo(info, bot) {
|
||||
const component = [""];
|
||||
component.push("Name: ", info.name);
|
||||
if (info.exclaimer) component.push("\n", "Exclaimer: ", info.exclaimer);
|
||||
if (info.authors && info.authors.length !== 0) {
|
||||
component.push("\n", "Authors: ");
|
||||
for (const author of info.authors) {
|
||||
component.push(author, { text: ", ", color: "gray" });
|
||||
}
|
||||
component.pop();
|
||||
}
|
||||
if (info.foundation) component.push("\n", "Foundation: ", info.foundation);
|
||||
if (info.prefixes && info.prefixes.length !== 0) {
|
||||
component.push("\n", "Prefixes: ");
|
||||
for (const prefix of info.prefixes) {
|
||||
component.push(prefix, { text: ", ", color: "gray" });
|
||||
}
|
||||
component.pop();
|
||||
}
|
||||
bot.tellraw("@a", [component]);
|
||||
},
|
||||
};
|
||||
//it doing it just for the ones i added lol
|
||||
// prob a replit moment, it probably thinks there are regexes in the strings
|
|
@ -1,33 +0,0 @@
|
|||
const CommandError = require('../../util/command_error')
|
||||
const sleep = require('../../util/sleep');
|
||||
module.exports = {
|
||||
data: {
|
||||
name: 'core',
|
||||
trustLevel: 0,
|
||||
aliases: [
|
||||
"cb",
|
||||
"corerun",
|
||||
"commandcorerun",
|
||||
],
|
||||
description: 'run commands in core!',
|
||||
usages: [
|
||||
"<command>",
|
||||
],
|
||||
},
|
||||
async execute (context) {
|
||||
const bot = context.bot
|
||||
const message = context.arguments.join(' ');
|
||||
bot.core.run(message);
|
||||
await sleep(45);
|
||||
/* bot.on('commandBlockOutput', (packet) => {
|
||||
bot.tellraw("@a", require('util').inspect(packet));
|
||||
console.log(packet);
|
||||
})*/
|
||||
// bot.core.commandBlockOutput()
|
||||
},
|
||||
discordExecute (context) {
|
||||
const bot = context.bot;
|
||||
const args = context.arguments;
|
||||
bot.core.run(args.join(' '));
|
||||
}
|
||||
}
|
|
@ -1,81 +0,0 @@
|
|||
const cowsay = require('cowsay2');
|
||||
const cows = require('cowsay2/cows');
|
||||
const { EmbedBuilder } = require('discord.js');
|
||||
const fixansi = require('../../util/ansi');
|
||||
module.exports = {
|
||||
data: {
|
||||
name: 'cowsay',
|
||||
trustLevel: 0,
|
||||
aliases: [
|
||||
],
|
||||
description: 'cows',
|
||||
usages: [
|
||||
"<message>",
|
||||
"list"
|
||||
],
|
||||
},
|
||||
execute (context) {
|
||||
const bot = context.bot;
|
||||
const args = context.arguments;
|
||||
const source = context.source;
|
||||
if (args[0]?.toLowerCase() === "list") {
|
||||
const list = Object.keys(cows);
|
||||
let content = [];
|
||||
let color = true;
|
||||
for (const value of list) {
|
||||
content.push([
|
||||
{
|
||||
text: value + ' ',
|
||||
color: (!((color = !color)) ? 'blue' : 'dark_blue'),
|
||||
}
|
||||
])
|
||||
}
|
||||
bot.tellraw(`@a[name="${source?.player?.profile?.name}"]`, content)
|
||||
} else if (cows[args[0]]) {
|
||||
bot.tellraw(`@a[name="${source?.player?.profile?.name}"]`, {
|
||||
text: cowsay.say(args.slice(1).join(' '),
|
||||
{ cow: cows[args[0]] })
|
||||
})
|
||||
} else {
|
||||
bot.tellraw(`@a[name="${source?.player?.profile?.name}"]`, { text: cowsay.say(args.slice(0).join(' ')) })
|
||||
}
|
||||
},
|
||||
discordExecute (context) {
|
||||
const bot = context.bot;
|
||||
const args = context.arguments;
|
||||
let Embed
|
||||
if (args[0] === "list") {
|
||||
const list = Object.keys(cows);
|
||||
let content = [];
|
||||
let color = true;
|
||||
for (const value of list) {
|
||||
content.push([
|
||||
{
|
||||
text: value + ' ',
|
||||
}
|
||||
])
|
||||
}
|
||||
const ansiList = bot.getMessageAsPrismarine(content)?.toString();
|
||||
const fixAnsiList = fixansi(ansiList.replaceAll('`', '`\u200b'))
|
||||
Embed = new EmbedBuilder()
|
||||
.setColor(`${config.colors.discord.embed}`)
|
||||
.setTitle(`${this.data.name} Command`)
|
||||
.setDescription(`\`\`\`ansi\n${fixAnsiList}\n\`\`\``)
|
||||
bot.discord.message.reply({ embeds: [Embed] })
|
||||
} else if (cows[args[0]]) {
|
||||
const ansiCow1 = bot.getMessageAsPrismarine({ text: cowsay.say(args.slice(1).join(' '), { cow: cows[args[0]] }) })?.toAnsi()
|
||||
const fixAnsiCow1 = fixansi(ansiCow1.replaceAll('`', '`\u200b'))
|
||||
Embed = new EmbedBuilder()
|
||||
.setColor(`${config.colors.discord.embed}`)
|
||||
.setTitle(`${this.data.name} Command`)
|
||||
.setDescription(`\`\`\`ansi\n${fixAnsiCow1}\n\`\`\``)
|
||||
bot.discord.message.reply({ embeds: [Embed] })
|
||||
} else {
|
||||
Embed = new EmbedBuilder()
|
||||
.setColor(`${config.colors.discord.embed}`)
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription(`\`\`\`ansi\n${cowsay.say(args.slice(0).join(' '))}\n\`\`\``)
|
||||
bot.discord.message.reply({ embeds: [Embed] });
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,32 +0,0 @@
|
|||
module.exports = {
|
||||
data: {
|
||||
name: 'echo',
|
||||
trustLevel: 0,
|
||||
aliases: [
|
||||
"say",
|
||||
"botsay",
|
||||
],
|
||||
description: 'Make me say something',
|
||||
usages: [
|
||||
"<message>"
|
||||
],
|
||||
},
|
||||
execute (context) {
|
||||
const bot = context.bot
|
||||
const message = context.arguments.join(' ')
|
||||
if (message.startsWith('/')) {
|
||||
bot.chat.command(message.substring(1))
|
||||
return
|
||||
}
|
||||
bot.chat.message(message)
|
||||
},
|
||||
discordExecute (context) {
|
||||
const bot = context.bot;
|
||||
const args = context.arguments;
|
||||
if (args.join(' ').startsWith('/')) {
|
||||
bot.chat.command(args.join(' ').substring(1))
|
||||
return
|
||||
}
|
||||
bot.chat.message(args.join(' '))
|
||||
}
|
||||
}
|
|
@ -1,454 +0,0 @@
|
|||
const CommandError = require('../../util/command_error');
|
||||
const sleep = require('../../util/sleep.js');
|
||||
const fixansi = require('../../util/ansi');
|
||||
const { EmbedBuilder } = require('discord.js');
|
||||
module.exports = {
|
||||
data: {
|
||||
name: 'help',
|
||||
trustLevel: 0,
|
||||
aliases: [
|
||||
"heko",
|
||||
"?",
|
||||
"cmds",
|
||||
"hell",
|
||||
"hello",
|
||||
"helo",
|
||||
"commands",
|
||||
"commandshelp",
|
||||
],
|
||||
description: 'a list of the bots commands',
|
||||
usages: [
|
||||
"",
|
||||
"<command>",
|
||||
],
|
||||
},
|
||||
execute (context) {
|
||||
const commandList = [];
|
||||
const bot = context.bot;
|
||||
const source = context.source;
|
||||
const args = context.arguments;
|
||||
const category = {
|
||||
translate: '(%s%s%s%s%s%s%s) \u203a ',
|
||||
bold: false,
|
||||
color: 'gray',
|
||||
with: [
|
||||
{ color: "aqua", text: 'Public'},
|
||||
{ color: "gray", text: ' | '},
|
||||
{ color: "dark_aqua", text: 'Trusted'},
|
||||
{ color: 'gray', text: ' | '},
|
||||
{ color: "blue", text: "Admin" },
|
||||
{ color: "gray", text: " | " },
|
||||
{ color: "dark_blue", text: 'Owner'},
|
||||
]
|
||||
}
|
||||
let public = [];
|
||||
let trusted = [];
|
||||
let admin = [];
|
||||
let owner = [];
|
||||
for (const command of bot.commandManager.commandlist) {
|
||||
let usagesComponent = [];
|
||||
let commandComponent = [];
|
||||
for (const usages of command.data.usages) {
|
||||
if (command?.data?.trustLevel === 1) {
|
||||
usagesComponent.push({
|
||||
translate: "%s%s %s",
|
||||
with: [
|
||||
{ text: `${config.prefixes[0]}`, color: "dark_blue" },
|
||||
{ text: `${command.data.name} <trusted/admin/owner hashes>`, color: "blue" },
|
||||
{ text: `${usages}`, color: "aqua" },
|
||||
]
|
||||
})
|
||||
} else if (command?.data.trustLevel === 2) {
|
||||
usagesComponent.push({
|
||||
translate: "%s%s %s",
|
||||
with: [
|
||||
{ text: `${config.prefixes[0]}`, color: "dark_blue" },
|
||||
{ text: `${command.data.name} <admin/owner hashes>`, color: "blue" },
|
||||
{ text: `${usages}`, color: "aqua" },
|
||||
]
|
||||
})
|
||||
} else if (command?.data.trustLevel === 3) {
|
||||
usagesComponent.push({
|
||||
translate: "%s%s %s",
|
||||
with: [
|
||||
{ text: `${config.prefixes[0]}`, color: "dark_blue" },
|
||||
{ text: `${command.data.name} <owner hash>`, color: "blue" },
|
||||
{ text: `${usages}`, color: "aqua" },
|
||||
]
|
||||
})
|
||||
} else if (command?.data.trustLevel === 0 || command.data.trustLevel === 4) {
|
||||
usagesComponent.push({
|
||||
translate: "%s%s %s",
|
||||
with: [
|
||||
{ text: `${config.prefixes[0]}`, color: "dark_blue" },
|
||||
{ text: `${command.data.name}`, color: "blue" },
|
||||
{ text: `${usages}`, color: "aqua" },
|
||||
]
|
||||
})
|
||||
}
|
||||
usagesComponent.push('\n');
|
||||
}
|
||||
usagesComponent.pop();
|
||||
commandComponent.push({
|
||||
translate: "%s %s %s\n%s %s %s\n%s %s %s\n%s %s %s\n%s %s",
|
||||
color: "dark_gray",
|
||||
with: [
|
||||
{ text: "Command Name", color: "dark_blue" },
|
||||
{ text: "\u203a" },
|
||||
{ text: `${command.data.name}`, color: "blue" },
|
||||
{ text: "Aliases", color: "dark_blue" },
|
||||
{ text: "\u203a" },
|
||||
{ text: `${command.data.aliases.toString().replaceAll(',',' ')}`, color: "blue" },
|
||||
{ text: "Description", color: "dark_blue" },
|
||||
{ text: "\u203a" },
|
||||
{ text: `${command.data.description}`, color: "blue" },
|
||||
{ text: "Trust Level", color: "dark_blue" },
|
||||
{ text: "\u203a" },
|
||||
{ text: `${command.data.trustLevel}`, color: "gold" },
|
||||
{ text: "Usages", color: "dark_blue" },
|
||||
{ text: "\u203a" }
|
||||
]
|
||||
})
|
||||
commandComponent.push("\n");
|
||||
commandComponent.push(usagesComponent);
|
||||
// for (const aliases of command.aliases) {
|
||||
if (args[0]?.toLowerCase() === command.data.name) {
|
||||
if (bot.options.isSavage) {
|
||||
bot.chat.message(`${bot.getMessageAsPrismarine(commandComponent)?.toMotd().replaceAll('§','&')}`);
|
||||
} else {
|
||||
bot.tellraw(`@a[name="${source?.player?.profile?.name}"]`, commandComponent)
|
||||
}
|
||||
return;
|
||||
}
|
||||
/* } if (args[0]?.toLowerCase() === aliases) {
|
||||
if (bot.options.isSavage) {
|
||||
bot.chat.message(`${bot.getMessageAsPrismarine(commandComponent)?.toMotd().replaceAll('§','&')}`)
|
||||
} else {
|
||||
bot.tellraw(`@a[name="${source?.player?.profile?.name}"]`, commandComponent)
|
||||
}
|
||||
return
|
||||
}
|
||||
console.log(aliases)*/
|
||||
// }
|
||||
// tellraw @p {"text":"this","clickEvent":{"action":"suggest_command","value":"this"}}
|
||||
if (command.data.trustLevel === 0) {
|
||||
public.push([
|
||||
{
|
||||
text: command.data.name + ' ',
|
||||
color: "aqua",
|
||||
translate: "",
|
||||
hoverEvent: {
|
||||
action: "show_text",
|
||||
value: [
|
||||
{
|
||||
text: `Command: ${command.data.name}\n`,
|
||||
color: 'blue'
|
||||
},
|
||||
{
|
||||
text: `Trust Level: `,
|
||||
color: 'blue'
|
||||
},
|
||||
{
|
||||
text: `${command.data.trustLevel}\n`,
|
||||
color: 'gold'
|
||||
},
|
||||
{
|
||||
text: `${command.data.description}\n`,
|
||||
color: 'blue'
|
||||
},
|
||||
{
|
||||
text: `Command Aliases: ${command.data.aliases}\n`,
|
||||
color: 'blue'
|
||||
},
|
||||
{
|
||||
text: 'click on me to use me :)',
|
||||
color: 'dark_blue',
|
||||
},
|
||||
],
|
||||
},
|
||||
clickEvent: {
|
||||
action: 'suggest_command',
|
||||
value: `${config.prefixes[0]}${command?.data.name}`
|
||||
}
|
||||
}
|
||||
])
|
||||
} else if (command.data.trustLevel === 1) {
|
||||
trusted.push([
|
||||
{
|
||||
text: command.data.name + ' ',
|
||||
color: "dark_aqua",
|
||||
translate: "",
|
||||
hoverEvent: {
|
||||
action: "show_text",
|
||||
value: [
|
||||
{
|
||||
text: `Command: ${command.data.name}\n`,
|
||||
color: 'blue'
|
||||
},
|
||||
{
|
||||
text: `Trust Level: `,
|
||||
color: 'blue'
|
||||
},
|
||||
{
|
||||
text: `${command.data.trustLevel}\n`,
|
||||
color: 'gold'
|
||||
},
|
||||
{
|
||||
text: `${command.data.description}\n`,
|
||||
color: 'blue'
|
||||
},
|
||||
{
|
||||
text: `Command Aliases: ${command.data.aliases}\n`,
|
||||
color: 'blue'
|
||||
},
|
||||
{
|
||||
text: 'click on me to use me :)',
|
||||
color: 'dark_blue',
|
||||
},
|
||||
],
|
||||
},
|
||||
clickEvent: {
|
||||
action: 'suggest_command',
|
||||
value: `${config.prefixes[0]}${command?.data.name}`
|
||||
}
|
||||
}
|
||||
])
|
||||
} else if (command.data.trustLevel === 2) {
|
||||
admin.push([
|
||||
{
|
||||
text: command.data.name + ' ',
|
||||
color: "blue",
|
||||
translate: "",
|
||||
hoverEvent: {
|
||||
action:"show_text",
|
||||
value: [
|
||||
{
|
||||
text: `Command: ${command.data.name}\n`,
|
||||
color: 'blue'
|
||||
},
|
||||
{
|
||||
text: `Trust Level: `,
|
||||
color: 'blue'
|
||||
},
|
||||
{
|
||||
text: `${command.data.trustLevel}\n`,
|
||||
color: 'gold'
|
||||
},
|
||||
{
|
||||
text: `${command.data.description}\n`,
|
||||
color: 'blue'
|
||||
},
|
||||
{
|
||||
text: `Command Aliases: ${command.data.aliases}\n`,
|
||||
color: 'blue'
|
||||
},
|
||||
{
|
||||
text: 'click on me to use me :)',
|
||||
color: 'dark_blue',
|
||||
},
|
||||
],
|
||||
},
|
||||
clickEvent: {
|
||||
action: 'suggest_command',
|
||||
value: `${config.prefixes[0]}${command?.data.name}`
|
||||
}
|
||||
}
|
||||
])
|
||||
} else if (command.data.trustLevel === 3) {
|
||||
owner.push([
|
||||
{
|
||||
text: command.data.name + ' ',
|
||||
color: "dark_blue",
|
||||
translate: "",
|
||||
hoverEvent: {
|
||||
action: "show_text",
|
||||
value: [
|
||||
{
|
||||
text: `Command: ${command.data.name}\n`,
|
||||
color: 'blue'
|
||||
},
|
||||
{
|
||||
text: `Trust Level: `,
|
||||
color: 'blue'
|
||||
},
|
||||
{
|
||||
text: `${command.data.trustLevel}\n`,
|
||||
color: 'gold'
|
||||
},
|
||||
{
|
||||
text: `${command.data.description}\n`,
|
||||
color: 'blue'
|
||||
},
|
||||
{
|
||||
text: `Command Aliases: ${command.data.aliases}\n`,
|
||||
color: 'blue'
|
||||
},
|
||||
{
|
||||
text: 'click on me to use me :)',
|
||||
color: 'dark_blue',
|
||||
},
|
||||
],
|
||||
},
|
||||
clickEvent: {
|
||||
action: 'suggest_command',
|
||||
value: `${config.prefixes[0]}${command?.data.name}`
|
||||
}
|
||||
}
|
||||
])
|
||||
}
|
||||
}
|
||||
const length = bot.commandManager.commandlist.filter(c => c.data.trustLevel != 4).length
|
||||
if (bot.options.useChat) {
|
||||
bot.chat.message(bot.getMessageAsPrismarine([
|
||||
{
|
||||
text: 'Commands (',
|
||||
color: 'gray'
|
||||
},
|
||||
{
|
||||
text: length,
|
||||
color: 'gold'
|
||||
},
|
||||
{
|
||||
text: ') ',
|
||||
color: 'gray'
|
||||
},
|
||||
category,
|
||||
])?.toMotd().replaceAll('§','&'))
|
||||
setTimeout(() => {
|
||||
bot.chat.message(bot.getMessageAsPrismarine(public)?.toMotd().replaceAll("§","&"))
|
||||
}, 300)
|
||||
setTimeout(() => {
|
||||
bot.chat.message(bot.getMessageAsPrismarine(trusted)?.toMotd().replaceAll("§","&"));
|
||||
}, 300)
|
||||
setTimeout(() => {
|
||||
bot.chat.message(bot.getMessageAsPrismarine(admin)?.toMotd()?.replaceAll('§','&'))
|
||||
}, 300)
|
||||
setTimeout(() => {
|
||||
bot.chat.message(bot.getMessageAsPrismarine(owner).toMotd().replaceAll("§","&"));
|
||||
}, 300)
|
||||
} else if (bot.options.isSavage) {
|
||||
bot.chat.message(bot.getMessageAsPrismarine([
|
||||
{
|
||||
text: 'Commands (',
|
||||
color: 'gray'
|
||||
},
|
||||
{
|
||||
text: length,
|
||||
color: 'gold'
|
||||
},
|
||||
{
|
||||
text: ') ',
|
||||
color: 'gray'
|
||||
},
|
||||
category,
|
||||
])?.toMotd().replaceAll('§','&'))
|
||||
setTimeout(() => {
|
||||
bot.chat.message(bot.getMessageAsPrismarine(public)?.toMotd().replaceAll("§","&"))
|
||||
}, 400)
|
||||
setTimeout(() => {
|
||||
bot.chat.message(bot.getMessageAsPrismarine(trusted)?.toMotd().replaceAll("§","&"));
|
||||
}, 400)
|
||||
setTimeout(() => {
|
||||
bot.chat.message(bot.getMessageAsPrismarine(admin)?.toMotd()?.replaceAll('§','&'))
|
||||
}, 400)
|
||||
setTimeout(() => {
|
||||
bot.chat.message(bot.getMessageAsPrismarine(owner).toMotd().replaceAll("§","&"));
|
||||
}, 400)
|
||||
} else if (admin.length === 0) {
|
||||
bot.tellraw(`@a[name="${source?.player?.profile?.name}"]`, [
|
||||
{ text: 'Commands (', color: 'gray' },
|
||||
{ text: JSON.stringify(length), color: 'gold' },
|
||||
{ text: ') ', color: 'gray' },
|
||||
category,
|
||||
'\n',
|
||||
public,
|
||||
trusted,
|
||||
owner
|
||||
])
|
||||
} else {
|
||||
bot.tellraw(`@a[name="${source?.player?.profile?.name}"]`, [
|
||||
{ text: 'Commands (', color: 'gray' },
|
||||
{ text: JSON.stringify(length), color: 'gold' },
|
||||
{ text: ') ', color: 'gray' },
|
||||
category,
|
||||
'\n',
|
||||
public,
|
||||
trusted,
|
||||
admin,
|
||||
owner
|
||||
])
|
||||
}
|
||||
},
|
||||
discordExecute (context) {
|
||||
const bot = context.bot;
|
||||
const args = context.arguments;
|
||||
const category = {
|
||||
translate: '(%s%s%s%s%s%s%s) \u203a ',
|
||||
bold: false,
|
||||
color: 'gray',
|
||||
with: [
|
||||
{ color: "aqua", text: 'Public'},
|
||||
{ color: "gray", text: ' | '},
|
||||
{ color: "dark_aqua", text: 'Trusted'},
|
||||
{ color: 'gray', text: ' | '},
|
||||
{ color: 'blue', text: 'Admin' },
|
||||
{ color: 'gray', text: ' | ' },
|
||||
{ color: "dark_blue", text: 'Owner'},
|
||||
]
|
||||
}
|
||||
let public = [];
|
||||
let trusted = [];
|
||||
let admin = [];
|
||||
let owner = [];
|
||||
for (const command of bot.commandManager.commandlist) {
|
||||
if (args[0] === command.data.name) {
|
||||
const ansi = bot.getMessageAsPrismarine([ { text: `CommandName \u203a ${command.data.name}\n`, color: 'gray', }, { text: `Aliases \u203a ${command.data.aliases}\n`, color: 'gray', }, { text: `Description \u203a ${command.data.description}\n`, color: 'gray', }, { text: `trustLevel \u203a ${command.data.trustLevel}\n`, color: 'gray' }, { text: `Usages \u203a ${command?.data.usages}`, color: "dark_gray" }, ])?.toAnsi().replaceAll('```\u001b[9```' + '```\u001b[3```')
|
||||
const fix = fixansi(ansi.replaceAll('`', '`\u200b'))
|
||||
const Embed = new EmbedBuilder()
|
||||
.setColor(`${config.colors.discord.embed}`)
|
||||
.setTitle(`${this.data.name} Command`)
|
||||
.setDescription(`\`\`\`ansi\n${fix}\n\`\`\``)
|
||||
bot.discord.message.reply({ embeds: [Embed] })
|
||||
return
|
||||
}
|
||||
if (command?.data.trustLevel === 0 && command.discordExecute) {
|
||||
public.push([
|
||||
{
|
||||
text: command.data.name + ' ',
|
||||
color: "aqua",
|
||||
}
|
||||
])
|
||||
} else if (command?.data.trustLevel === 1 && command.discordExecute) {
|
||||
trusted.push([
|
||||
{
|
||||
text: command.data.name + ' ',
|
||||
color: "dark_aqua"
|
||||
}
|
||||
])
|
||||
} else if (command?.data.trustLevel === 2 && command.discordExecute) {
|
||||
admin.push([
|
||||
{
|
||||
text: command.data.name + ' ',
|
||||
color: 'blue'
|
||||
}
|
||||
])
|
||||
} else if (command?.data.trustLevel === 3 && command.discordExecute) {
|
||||
owner.push([
|
||||
{
|
||||
text: command.data.name + ' ',
|
||||
color: "dark_blue",
|
||||
}
|
||||
])
|
||||
}
|
||||
}
|
||||
const length = bot.commandManager.commandlist.filter(c => c.data.trustLevel !== 4 && c.discordExecute).length
|
||||
const ansi1 = bot.getMessageAsPrismarine([ { text: 'Commands (', color: 'gray' }, { text: JSON.stringify(length), color: 'gold' }, { text: ') ', color: 'gray' }, category, '\n', public, trusted, owner ])?.toAnsi();
|
||||
const fix1 = fixansi(ansi1.replaceAll('`', '`\u200b'))
|
||||
const Embed = new EmbedBuilder()
|
||||
.setColor(`${config.colors.discord.embed}`)
|
||||
.setTitle(`${this.data.name} Command`)
|
||||
.setDescription(`\`\`\`ansi\n${fix1}\n\`\`\``)
|
||||
bot.discord.message.reply({ embeds: [Embed] })
|
||||
bot?.discord?.message.react('♋')
|
||||
}
|
||||
}
|
|
@ -1,355 +0,0 @@
|
|||
const os = require("os");
|
||||
const CommandError = require('../../util/command_error');
|
||||
const fs = require("fs");
|
||||
const botInfo = require('../../../package-lock.json');
|
||||
const fixansi = require('../../util/ansi.js');
|
||||
const { EmbedBuilder } = require('discord.js');
|
||||
const { execSync } = require('child_process')
|
||||
function format(seconds) {
|
||||
function pad(s) {
|
||||
return (s < 10 ? "0" : "") + s;
|
||||
}
|
||||
var hours = Math.floor(seconds / (60 * 60));
|
||||
var minutes = Math.floor((seconds % (60 * 60)) / 60);
|
||||
var seconds = Math.floor(seconds % 60);
|
||||
return (pad(`${hours} Hours`) + " " +
|
||||
pad(`${minutes} Minutes`) + " " +
|
||||
pad(`${seconds} Seconds`))
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
data: {
|
||||
name: 'info',
|
||||
trustLevel: 0,
|
||||
aliases: [
|
||||
"information",
|
||||
],
|
||||
description: 'check the bots info',
|
||||
usages: [
|
||||
"about",
|
||||
"config <client, discord, options, all>",
|
||||
"contributors/credits",
|
||||
"discord",
|
||||
"usages <bot, server, all>",
|
||||
"uptimes/uptime <bot, server, all>",
|
||||
"server",
|
||||
"version/ver",
|
||||
],
|
||||
},
|
||||
execute (context) {
|
||||
const bot = context.bot;
|
||||
const args = context.arguments;
|
||||
const config = context.config;
|
||||
const discordClient = context.discordClient;
|
||||
const source = context.source;
|
||||
let component = [];
|
||||
switch (args[0]?.toLowerCase()) {
|
||||
case "about":
|
||||
component.push({
|
||||
text: `FNFBoyfriendBot is a kaboom bot created by Parker2991\nThe source code and changelog can be found here ${botInfo.url}`,
|
||||
color: `${config.colors.commands.primary}`,
|
||||
translate: "",
|
||||
hoverEvent: {
|
||||
action: "show_text",
|
||||
value: [
|
||||
{ text: "click here to view bots source code", color: `${config.colors.commands.primary}` }
|
||||
]
|
||||
},
|
||||
clickEvent: {
|
||||
action: "open_url",
|
||||
value: `${botInfo.url}`
|
||||
}
|
||||
})
|
||||
break;
|
||||
case "config":
|
||||
if (bot.options.isKaboom) {
|
||||
mode = "Kaboom";
|
||||
} if (bot.options.useChat && bot.options.isKaboom) {
|
||||
mode = "Kaboom/Coreless";
|
||||
} if (bot.options.isSavage) {
|
||||
mode = "Savage";
|
||||
} if (bot.options.isCreayun) {
|
||||
mode = "Creayun";
|
||||
}
|
||||
switch (args.slice(1).join(' ')?.toLowerCase()) {
|
||||
case "client":
|
||||
component.push({
|
||||
translate: "%s: %s:%s\n%s: %s\n%s: %s\n%s: %s",
|
||||
color: config.colors.commands.tertiary,
|
||||
with: [
|
||||
{ text: "Server", color: config.colors.commands.primary },
|
||||
{ text: `${bot.options.host}`, color: config.colors.commands.secondary },
|
||||
{ text: `${bot.options.port}`, color: config.colors.integer },
|
||||
{ text: "Server Name", color: config.colors.commands.primary },
|
||||
{ text: `${bot.options.serverName}`, color: config.colors.commands.secondary },
|
||||
{ text: "Minecraft Username", color: config.colors.commands.primary },
|
||||
{ text: `${bot.options.username}`, color: config.colors.commands.secondary },
|
||||
{ text: "Version", color: config.colors.commands.primary },
|
||||
{ text: `${bot.options.version}`, color: config.colors.integer },
|
||||
]
|
||||
})
|
||||
break;
|
||||
case "discord":
|
||||
if (!config.discord.enabled || discordClient.user === null) {
|
||||
throw new CommandError('Token is incorrect or discord isnt enabled!')
|
||||
} else {
|
||||
component.push({
|
||||
translate: "%s: %s\n%s: %s",
|
||||
color: config.colors.commands.tertiary,
|
||||
with: [
|
||||
{ text: "Discord Username", color: config.colors.commands.primary },
|
||||
{ text: `${discordClient.user.tag}`, color: config.colors.commands.secondary },
|
||||
{ text: "Discord Channel", color: config.colors.commands.primary },
|
||||
{ text: `${bot.discord?.channel?.name}`, color: config.colors.commands.secondary },
|
||||
]
|
||||
})
|
||||
}
|
||||
break;
|
||||
case "options":
|
||||
component.push({
|
||||
translate: "%s: %s\n%s: %s\n%s: %s",
|
||||
color: config.colors.commands.tertiary,
|
||||
with: [
|
||||
{ text: "Server Count", color: config.colors.commands.primary },
|
||||
{ text: `${bot.bots.length}`, color: config.colors.integer },
|
||||
{ text: "Prefixes", color: config.colors.commands.primary },
|
||||
{ text: `${config.prefixes.map((e) => e + " ").join(' ')}`, color: config.colors.commands.secondary },
|
||||
{ text: "Mode", color: config.colors.commands.primary },
|
||||
{ text: `${mode}`, color: config.colors.commands.secondary },
|
||||
]
|
||||
})
|
||||
break;
|
||||
case "all":
|
||||
component.push({
|
||||
translate: "%s: %s:%s\n%s: %s\n%s: %s\n%s: %s\n%s: %s\n%s: %s\n%s: %s\n%s: %s\n%s: %s",
|
||||
color: config.colors.commands.tertiary,
|
||||
with: [
|
||||
{ text: "Server", color: config.colors.commands.primary },
|
||||
{ text: `${bot.options.host}`, color: config.colors.commands.secondary },
|
||||
{ text: `${bot.options.port}`, color: config.colors.integer },
|
||||
{ text: "Server Name", color: config.colors.commands.primary },
|
||||
{ text: `${bot.options.serverName}`, color: config.colors.commands.secondary },
|
||||
{ text: "Minecraft Username", color: config.colors.commands.primary },
|
||||
{ text: `${bot.options.username}`, color: config.colors.commands.secondary },
|
||||
{ text: "Version", color: config.colors.commands.primary },
|
||||
{ text: `${bot.options.version}`, color: config.colors.commands.secondary },
|
||||
{ text: "Discord Username", color: config.colors.commands.primary },
|
||||
{ text: `${discordClient.user?.tag}`, color: config.colors.commands.secondary },
|
||||
{ text: "Discord Channel", color: config.colors.commands.primary },
|
||||
{ text: `${bot.discord.channel?.name}`, color: config.colors.commands.secondary },
|
||||
{ text: "Server Count", color: config.colors.commands.primary },
|
||||
{ text: `${bot.bots.length}`, color: config.colors.integer },
|
||||
{ text: "Prefixes", color: config.colors.commands.primary },
|
||||
{ text: `${config.prefixes.map((e) => e + " ").join(' ')}`, color: config.colors.commands.secondary },
|
||||
{ text: "Mode", color: config.colors.commands.primary },
|
||||
{ text: `${mode}`, color: config.colors.commands.secondary }
|
||||
]
|
||||
})
|
||||
break;
|
||||
default:
|
||||
throw new CommandError({ translate: "command.unknown.argument", color: "dark_red" });
|
||||
}
|
||||
break;
|
||||
case "contributors":
|
||||
case "credits":
|
||||
component.push({
|
||||
translate: "%s%s - %s\n%s:\n%s\n%s\n%s\n%s\n%s %s\n%s",
|
||||
color: config.colors.commands.tertiary,
|
||||
with: [
|
||||
{ text: "Parker", color: "dark_red" },
|
||||
{ text: "2991", color: "black" },
|
||||
{ text: "Owner" },
|
||||
{ text: "Contributors" },
|
||||
{ text: "_ChipMC_", color: "dark_blue" },
|
||||
{ text: "chayapak", color: "yellow" },
|
||||
{ text: "_yfd", color: "light_purple" },
|
||||
{ text: "aaa", color: "gold" },
|
||||
{ text: "Morgan", color: "green" },
|
||||
{ text: "Ankan", color: "dark_green" },
|
||||
{ text: "TurtleKid", color: "green" }
|
||||
]
|
||||
})
|
||||
break;
|
||||
case "discord":
|
||||
component.push({
|
||||
text: `the discord server invite is ${config.discord.invite}`,
|
||||
color: config.colors.commands.primary,
|
||||
translate: "",
|
||||
hoverEvent: {
|
||||
action: "show_text",
|
||||
value: [
|
||||
{
|
||||
text: "click here to join the discord server!",
|
||||
color: config.colors.commands.secondary,
|
||||
}
|
||||
]
|
||||
},
|
||||
clickEvent: {
|
||||
action: "open_url",
|
||||
value: `${config.discord.invite}`
|
||||
}
|
||||
})
|
||||
break;
|
||||
case "usages":
|
||||
switch (args.slice(1).join(' ')?.toLowerCase()) {
|
||||
case "bot":
|
||||
component.push({
|
||||
translate: "%s: %s %s / %s %s",
|
||||
color: config.colors.commands.tertiary,
|
||||
with: [
|
||||
{ text: "Bot Memory Usage", color: config.colors.commands.primary },
|
||||
{ text: `${Math.floor(process.memoryUsage().heapUsed / 1048576)}`, color: config.colors.integer },
|
||||
{ text: "MiB", color: config.colors.commands.secondary },
|
||||
{ text: `${Math.floor(process.memoryUsage().heapTotal / 1048576 )}`, color: config.colors.integer },
|
||||
{ text: "MiB", color: config.colors.commands.secondary }
|
||||
]
|
||||
})
|
||||
break;
|
||||
case "server":
|
||||
component.push({
|
||||
translate: "%s: %s %s / %s %s",
|
||||
color: config.colors.commands.tertiary,
|
||||
with: [
|
||||
{ text: "Free Server Memory", color: config.colors.commands.primary },
|
||||
{ text: `${Math.floor(os.freemem() / 1048576)}`, color: config.colors.integer },
|
||||
{ text: "MiB", color: config.colors.commands.secondary },
|
||||
{ text: `${Math.floor(os.totalmem() / 1048576)}`, color: config.colors.integer },
|
||||
{ text: "MiB", color: config.colors.commands.secondary },
|
||||
]
|
||||
})
|
||||
break;
|
||||
case "all":
|
||||
component.push({
|
||||
translate: "%s: %s %s / %s %s\n%s: %s %s / %s %s",
|
||||
color: config.colors.commands.tertiary,
|
||||
with: [
|
||||
{ text: "Free Server Memory", color: config.colors.commands.primary },
|
||||
{ text: `${Math.floor(os.freemem() / 1048576)}`, color: config.colors.integer },
|
||||
{ text: "MiB", color: config.colors.commands.secondary },
|
||||
{ text: `${Math.floor(os.totalmem() / 1048576)}`, color: config.colors.integer },
|
||||
{ text: "MiB", color: config.colors.commands.secondary },
|
||||
{ text: "Bot Memory Usage", color: config.colors.commands.primary },
|
||||
{ text: `${Math.floor(process.memoryUsage().heapUsed / 1048576)}`, color: config.colors.integer },
|
||||
{ text: "MiB", color: config.colors.commands.secondary },
|
||||
{ text: `${Math.floor(process.memoryUsage().heapTotal / 1048576 )}`, color: config.colors.integer },
|
||||
{ text: "MiB", color: config.colors.commands.secondary }
|
||||
]
|
||||
})
|
||||
break;
|
||||
default:
|
||||
throw new CommandError({ translate: "command.unknown.argument", color: "dark_red" });
|
||||
}
|
||||
break;
|
||||
case "uptimes":
|
||||
switch (args.slice(1).join(' ')?.toLowerCase()) {
|
||||
case "bot":
|
||||
component.push({
|
||||
translate: "%s: %s",
|
||||
color: config.colors.commands.tertiary,
|
||||
with: [
|
||||
{ text: "Bot Uptime", color: config.colors.commands.primary },
|
||||
{ text: `${format(process.uptime())}`, color: config.colors.commands.secondary },
|
||||
]
|
||||
})
|
||||
break;
|
||||
case "server":
|
||||
component.push({
|
||||
translate: "%s: %s",
|
||||
color: config.colors.commands.tertiary,
|
||||
with: [
|
||||
{ text: "Server Uptime", color: config.colors.commands.primary },
|
||||
{ text: `${format(os.uptime())}`, color: config.colors.commands.secondary },
|
||||
]
|
||||
})
|
||||
break;
|
||||
case "all":
|
||||
component.push({
|
||||
translate: "%s: %s\n%s: %s",
|
||||
color: config.colors.commands.tertiary,
|
||||
with: [
|
||||
{ text: "Bot Uptime", color: config.colors.commands.primary },
|
||||
{ text: `${format(process.uptime())}`, color: config.colors.commands.secondary },
|
||||
{ text: "Server Uptime", color: config.colors.commands.primary },
|
||||
{ text: `${format(os.uptime())}`, color: config.colors.commands.secondary },
|
||||
]
|
||||
})
|
||||
break;
|
||||
throw new CommandError({ translate: "command.unknown.argument", color: "dark_red" });
|
||||
}
|
||||
break;
|
||||
case "server":
|
||||
component.push({
|
||||
translate: "%s: %s\n%s: %s\n%s: %s\n%s: %s\n%s: %s\n%s: %s\n%s: %s\n%s: %s\n%s: %s\n%s: %s\n%s: %s",
|
||||
color: config.colors.commands.tertiary,
|
||||
with: [
|
||||
{ text: "Hostname", color: config.colors.commands.primary },
|
||||
{ text: `${os.hostname()}`, color: config.colors.commands.secondary },
|
||||
{ text: "User", color: config.colors.commands.primary },
|
||||
{ text: `${os.userInfo().username}`, color: config.colors.commands.secondary },
|
||||
{ text: "Working Directory", color: config.colors.commands.primary },
|
||||
{ text: `${process.mainModule.path}`, color: config.colors.commands.secondary },
|
||||
{ text: "Arch", color: config.colors.commands.primary },
|
||||
{ text: `${os.arch()}`, color: config.colors.commands.secondary },
|
||||
{ text: "OS", color: config.colors.commands.primary },
|
||||
{ text: `${os.platform}`, color: config.colors.commands.secondary },
|
||||
{ text: "OS Version", color: config.colors.commands.primary },
|
||||
{ text: `${os.version()}`, color: config.colors.commands.secondary },
|
||||
{ text: "Kernel Version", color: config.colors.commands.primary },
|
||||
{ text: `${os.release()}`, color: config.colors.commands.secondary },
|
||||
{ text: "CPU", color: config.colors.commands.primary },
|
||||
{ text: `${os.cpus()[0].model}`, color: config.colors.commands.secondary },
|
||||
{ text: "CPU cores", color: config.colors.commands.primary },
|
||||
{ text: `${os.cpus().length}`, color: config.colors.integer },
|
||||
{ text: "Node Version", color: config.colors.commands.primary },
|
||||
{ text: `${process.version}`, color: config.colors.commands.secondary },
|
||||
{ text: "NPM Version", color: config.colors.commands.primary },
|
||||
{ text: `${execSync('npm -v').toString().replaceAll('\n', '')}`, color: config.colors.commands.secondary },
|
||||
]
|
||||
})
|
||||
break;
|
||||
case "version":
|
||||
case "ver":
|
||||
if (botInfo.codename === '') {
|
||||
component.push({
|
||||
translate: "%s %s %s-%s-%s%s\n%s - %s",
|
||||
color: config.colors.commands.tertiary,
|
||||
with: [
|
||||
{ text: "Friday Night Funkin", color: "dark_blue" },
|
||||
{ text: "Boyfriend", color: "dark_aqua" },
|
||||
{ text: "Bot", color: "blue" },
|
||||
{ text: `${botInfo.version}`, color: config.colors.integer },
|
||||
{ text: "#" },
|
||||
{ text: `${botInfo.build}`, color: config.colors.integer },
|
||||
{ text: "11/22/22", color: config.colors.commands.primary },
|
||||
{ text: `${new Date().toLocaleDateString("en-US", { timeZone: "America/CHICAGO" })}`, color: config.colors.commands.secondary },
|
||||
]
|
||||
})
|
||||
/*
|
||||
`§9Friday §9Night §9Funkin §3Boyfriend §1Bot§8§r-
|
||||
${botInfo.version}-#${botInfo.build}-${botInfo.codename}\n11/22/22 -
|
||||
${new Date().toLocaleDateString("en-US", { timeZone: "America/CHICAGO" })}
|
||||
*/
|
||||
} else {
|
||||
component.push({
|
||||
translate: "%s %s %s-%s-%s%s-%s\n%s - %s",
|
||||
color: config.colors.commands.tertiary,
|
||||
with: [
|
||||
{ text: "Friday Night Funkin", color: "dark_blue" },
|
||||
{ text: "Boyfriend", color: "dark_aqua" },
|
||||
{ text: "Bot", color: "blue" },
|
||||
{ text: `${botInfo.version}`, color: config.colors.integer },
|
||||
{ text: "#" },
|
||||
{ text: `${botInfo.build}`, color: config.colors.integer },
|
||||
{ text: `${botInfo.codename}` },
|
||||
{ text: "11/22/22", color: config.colors.commands.primary },
|
||||
{ text: `${new Date().toLocaleDateString("en-US", { timeZone: "America/CHICAGO" })}`, color: config.colors.commands.secondary },
|
||||
]
|
||||
})
|
||||
}
|
||||
break;
|
||||
default:
|
||||
throw new CommandError({ translate: "command.unknown.argument", color: "dark_red" });
|
||||
}
|
||||
bot.tellraw(`@a[name="${source.player.profile.name}"]`, component);
|
||||
},
|
||||
}
|
|
@ -1,101 +0,0 @@
|
|||
const CommandError = require('../../util/command_error');
|
||||
const { EmbedBuilder } = require('discord.js');
|
||||
const fixansi = require('../../util/ansi');
|
||||
module.exports = {
|
||||
data: {
|
||||
name: 'list',
|
||||
description: 'check the player list',
|
||||
trustLevel: 0,
|
||||
aliases: [
|
||||
'playerlist',
|
||||
'plist',
|
||||
'pl'
|
||||
],
|
||||
usages: [
|
||||
""
|
||||
],
|
||||
},
|
||||
execute (context) {
|
||||
const bot = context.bot
|
||||
const args = context.arguments
|
||||
const players = bot.players
|
||||
const source = context.source
|
||||
const component = []
|
||||
for (const player of players) {
|
||||
component.push({
|
||||
translate: `%s \u203a %s [%s: %s %s %s: %s]`,
|
||||
color: 'dark_gray',
|
||||
with: [
|
||||
player.displayName ?? player.profile.name,
|
||||
{
|
||||
text: `${player.uuid}`,
|
||||
color: 'dark_blue',
|
||||
clickEvent: {
|
||||
action: 'copy_to_clipboard',
|
||||
value: `${player.uuid}`
|
||||
},
|
||||
hoverEvent: {
|
||||
action: 'show_text',
|
||||
contents: [{
|
||||
text: 'click here to copy the player\'s uuid',
|
||||
color: 'aqua'
|
||||
}]
|
||||
}
|
||||
},
|
||||
{ text: `Ping`, color: 'dark_blue' },
|
||||
{ text: `${player.latency}`, color: 'gold' },
|
||||
{ text: '/', color: 'dark_gray' },
|
||||
{ text: `Gamemode`, color: 'dark_blue' },
|
||||
{ text: `${player.gamemode}`, color: 'gold' },
|
||||
]
|
||||
})
|
||||
component.push('\n')
|
||||
}
|
||||
component.pop()
|
||||
if (bot.options.isSavage) {
|
||||
bot.chat.message(`${bot.getMessageAsPrismarine([{ text: `Players: `, color:'gray' }, { text: '(' , color: 'gray' }, { text: `${JSON.stringify(bot.players.length)}`, color: 'gold' }, { text: ')\n', color: 'gray' }])?.toMotd().replaceAll('§','&')}`)
|
||||
setTimeout(() => {
|
||||
for (const player of bot.players) {
|
||||
bot.chat.message(`${bot.getMessageAsPrismarine([player.displayName ?? player.profile.name, ' &8', player.uuid,` &r&8[&2Ping: &6${player.latency}&8 / &5Gamemode: &6${player.gamemode}&8]`]).toMotd().replaceAll('§', '&')}`)
|
||||
}
|
||||
}, 300)
|
||||
} else if (bot.options.isKaboom) {
|
||||
bot.tellraw(`@a[name="${source.player.profile.name}"]`, [
|
||||
{ text: `Players`, color: 'dark_blue' },
|
||||
{ text: ': ', color: 'dark_gray' },
|
||||
{ text: '(' , color: 'dark_gray' },
|
||||
{ text: `${JSON.stringify(bot.players.length)}`, color: 'gold' },
|
||||
{ text: ')\n', color: 'dark_gray' },
|
||||
component
|
||||
])
|
||||
}
|
||||
},
|
||||
discordExecute(context) {
|
||||
const bot = context.bot
|
||||
const players = bot.players
|
||||
const component = []
|
||||
for (const player of players) {
|
||||
component.push({
|
||||
translate: `%s \u203a %s [%s %s %s %s %s]`,
|
||||
with: [
|
||||
player.displayName ?? player.profile.name,
|
||||
player.uuid,
|
||||
{ text: `Ping:`, color: 'dark_green' },
|
||||
{ text: `${player.latency}`, color: 'gold' },
|
||||
{ text: '/', color: 'gray' },
|
||||
{ text: `Gamemode:`, color: 'dark_purple' },
|
||||
{ text: `${player.gamemode}`, color: 'gold' },
|
||||
]
|
||||
})
|
||||
component.push('\n')
|
||||
}
|
||||
component.pop()
|
||||
const ansi = bot.getMessageAsPrismarine([{ text: `Players: `, color:'gray' }, { text: '(' , color: 'gray' }, { text: `${JSON.stringify(bot.players.length)}`, color: 'gold' }, { text: ')\n', color: 'gray' }, component])?.toAnsi()
|
||||
const fix = fixansi(ansi.replaceAll('`', '`\u200b').substring(0, 3080))
|
||||
const Embed = new EmbedBuilder()
|
||||
.setColor(`${config.colors.discord.embed}`)
|
||||
.setTitle(`${this.data.name} Command`)
|
||||
.setDescription(`\`\`\`ansi\n${fix}\n\`\`\``)
|
||||
bot.discord.message.reply({ embeds: [Embed] })
|
||||
}
|
||||
}
|
|
@ -1,94 +0,0 @@
|
|||
const { request } = require('undici');
|
||||
const CommandError = require('../../util/command_error.js');
|
||||
const mc = require('minecraft-protocol');
|
||||
const util = require('util')
|
||||
module.exports = {
|
||||
data: {
|
||||
name: 'mcserver',
|
||||
trustLevel: 0,
|
||||
aliases: [
|
||||
"pingserver",
|
||||
"pingsrv",
|
||||
],
|
||||
description: 'look up minecraft server info',
|
||||
usages: [
|
||||
"<minecraft server ip>",
|
||||
],
|
||||
},
|
||||
async execute (context) {
|
||||
const bot = context.bot;
|
||||
const discordClient = context.discordClient;
|
||||
const args = context.arguments;
|
||||
const source = context.source;
|
||||
let component = [];
|
||||
try {
|
||||
const [host, port] = args[0].split(':')
|
||||
const server = await mc.ping({ host, port: Number(port ?? 25565) })
|
||||
component.push({
|
||||
translate: '%s %s %s:%s\n%s %s %s / %s\n%s %s %s\n%s %s %s',
|
||||
color: 'dark_gray',
|
||||
with: [
|
||||
{ text: 'Ip', color: 'dark_blue' },
|
||||
{ text: '\u203a' },
|
||||
{ text: `${host}`, color: 'dark_blue' },
|
||||
{ text: `${Number(port ?? 25565)}`, color: 'gold' },
|
||||
{ text: 'Players', color: 'dark_blue' },
|
||||
{ text: '\u203a' },
|
||||
{ text: `${server.players.online}`, color: 'gold' },
|
||||
{ text: `${server.players.max}`, color: 'gold' },
|
||||
{ text: 'Version', color: 'dark_blue' },
|
||||
{ text: '\u203a' },
|
||||
{ text: `${server.version.name}`, color: 'blue' },
|
||||
{ text: 'Motd', color: 'dark_blue' },
|
||||
{ text: '\u203a' },
|
||||
server.description
|
||||
]
|
||||
})
|
||||
bot.tellraw(`@a[name="${source?.player?.profile?.name}"]`, component);
|
||||
/* bot.tellraw(`@a[name="${source?.player?.profile?.name}"]`, [
|
||||
{
|
||||
text: `Ip \u203a ${host}:${Number(port ?? 25565)}\n`,
|
||||
color: 'gray',
|
||||
hoverEvent: {
|
||||
action: 'show_text',
|
||||
contents: [{
|
||||
text: 'click here for the servers ip',
|
||||
color: 'gray'
|
||||
}]
|
||||
},
|
||||
clickEvent: {
|
||||
action: 'copy_to_clipboard',
|
||||
value: `${host}:${Number(port ?? 25565)}`
|
||||
}
|
||||
},
|
||||
{
|
||||
text: `Players \u203a `,
|
||||
color: 'gray'
|
||||
},
|
||||
{
|
||||
text: `${server.players.online}`,
|
||||
color: "gold"
|
||||
},
|
||||
{
|
||||
text: ' / ',
|
||||
color: 'gray'
|
||||
},
|
||||
{
|
||||
text: `${server.players.max}\n`,
|
||||
color: "gold"
|
||||
},
|
||||
{
|
||||
text: `Version \u203a ${server.version.name}\n`,
|
||||
color: 'gray',
|
||||
},
|
||||
{
|
||||
text: "Motd \u203a\n",
|
||||
color: 'gray',
|
||||
},
|
||||
server.description,
|
||||
])*/
|
||||
} catch (e) {
|
||||
bot.chat.message(`${e.toString()}`)
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,96 +0,0 @@
|
|||
const CommandError = require('../../util/command_error.js')
|
||||
module.exports = {
|
||||
data: {
|
||||
name: 'netmsg',
|
||||
trustLevel: 0,
|
||||
aliases: [
|
||||
|
||||
],
|
||||
description: 'netmsg to other servers',
|
||||
usages: [
|
||||
"<message>"
|
||||
],
|
||||
},
|
||||
execute (context) {
|
||||
const args = context.arguments;
|
||||
const bot = context.bot;
|
||||
const source = context.source;
|
||||
const config = context.config;
|
||||
if (bot.options.private) {
|
||||
component = {
|
||||
translate: '[%s] %s \u203a %s',
|
||||
color: "dark_gray",
|
||||
with: [
|
||||
{ text: bot.options.serverName, color: "blue" },
|
||||
source.player.displayName ?? source.player.profile.name,
|
||||
{ text: args.join(' '), color: "blue" },
|
||||
]
|
||||
}
|
||||
} else if (!bot.options.private) {
|
||||
component = {
|
||||
translate: '[%s:%s] %s \u203a %s',
|
||||
color: "dark_gray",
|
||||
with: [
|
||||
{ text: bot.options.host, color: "blue" },
|
||||
{ text: `${bot.options.port}`, color: "gold" },
|
||||
source.player.displayName ?? source.player.profile.name,
|
||||
{ text: args.join(' '), color: "blue" },
|
||||
]
|
||||
}
|
||||
}
|
||||
bot.bots.filter((eachBot) => {
|
||||
if (eachBot.options.isSavage && !eachBot.options.useChat && !eachBot.options.isKaboom || eachBot.options.isCreayun && !eachBot.options.isSavage && !eachBot.options.useChat && !eachBot.options.isKaboom) {
|
||||
eachBot.chat.message(`[${bot.options.serverName}] ${bot.getMessageAsPrismarine(source.player.displayName ?? source.player.profile.name)?.toMotd().replaceAll('§','&')} \u203a ${args.join(' ')}`)
|
||||
} else if (!eachBot.options.serverName !== "Savage Friends" && !eachBot.options.isSavage && !eachBot.options.useChat && eachBot.options.isKaboom) {
|
||||
eachBot.tellraw("@a", component);
|
||||
} else if (!eachBot.options.serverName !== "Savage Friends" && !eachBot.options.isSavage && eachBot.options.useChat && eachBot.options.isKaboom) {
|
||||
eachBot.chat.message(`&7[&7${bot.options.serverName}&7] ${bot.getMessageAsPrismarine(source.player.displayName ?? source.player.profile.name)?.toMotd().replaceAll('§','&')} &7\u203a ${args.join(' ')}`)
|
||||
} else if (eachBot.options.useChat && !eachBot.options.isSavage) {
|
||||
// eachBot.chat.message(bot.getMessageAsPrismarine(`[${bot.options.host}:${bot.options.port}] ${source.player.displayName ?? source.player.profile.name} \u203a ${args.join(' ')}`)?.toMotd().replaceAll('§','&'))
|
||||
eachBot.chat.message(`&7[&7${bot.options.serverName}&7] ${bot.getMessageAsPrismarine(source.player.displayName ?? source.player.profile.name)?.toMotd().replaceAll('§','&')} &7\u203a ${args.join(' ')}`)
|
||||
} else if (!eachBot.options.useChat && !eachBot.options.isSavage) {
|
||||
eachBot.tellraw("@a", component);
|
||||
}
|
||||
})
|
||||
},
|
||||
discordExecute (context) {
|
||||
const bot = context.bot;
|
||||
const args = context.arguments;
|
||||
const source = context.source;
|
||||
if (bot.options.private) {
|
||||
component = {
|
||||
translate: '[%s] %s \u203a %s',
|
||||
color: "dark_gray",
|
||||
with: [
|
||||
{ text: bot.options.serverName, color: "blue" },
|
||||
source.player.displayName ?? source.player.profile.name,
|
||||
{ text: args.join(' '), color: "blue" },
|
||||
]
|
||||
}
|
||||
} else if (!bot.options.private) {
|
||||
component = {
|
||||
translate: '[%s:%s] %s \u203a %s',
|
||||
color: "dark_gray",
|
||||
with: [
|
||||
{ text: bot.options.host, color: "blue" },
|
||||
{ text: `${bot.options.port}`, color: "gold" },
|
||||
source.player.displayName ?? source.player.profile.name,
|
||||
{ text: args.join(' '), color: "blue" },
|
||||
]
|
||||
}
|
||||
}
|
||||
bot.bots.filter((eachBot) => {
|
||||
if (eachBot.options.serverName === "Savage Friends" && eachBot.options.isSavage && !eachBot.options.useChat && !eachBot.options.isKaboom) {
|
||||
eachBot.chat.message(`[${bot.options.serverName}] ${bot.getMessageAsPrismarine(source.player.displayName ?? source.player.profile.name)?.toMotd().replaceAll('§','&')} \u203a ${args.join(' ')}`)
|
||||
} else if (!eachBot.options.serverName !== "Savage Friends" && !eachBot.options.isSavage && !eachBot.options.useChat && eachBot.options.isKaboom) {
|
||||
eachBot.tellraw("@a", component);
|
||||
} else if (!eachBot.options.serverName !== "Savage Friends" && !eachBot.options.isSavage && eachBot.options.useChat && eachBot.options.isKaboom) {
|
||||
eachBot.chat.message(`&7[&7${bot.options.serverName}&7] ${bot.getMessageAsPrismarine(source.player.displayName ?? source.player.profile.name)?.toMotd().replaceAll('§','&')} &7\u203a ${args.join(' ')}`)
|
||||
} else if (eachBot.options.useChat && !eachBot.options.isSavage) {
|
||||
eachBot.chat.message(`&7[&7${bot.options.serverName}&7] ${bot.getMessageAsPrismarine(source.player.displayName ?? source.player.profile.name)?.toMotd().replaceAll('§','&')} &7\u203a ${args.join(' ')}`)
|
||||
} else if (!eachBot.options.useChat && !eachBot.options.isSavage) {
|
||||
eachBot.tellraw("@a", component);
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
|
@ -1,24 +0,0 @@
|
|||
module.exports = {
|
||||
data: {
|
||||
name: 'refillcore',
|
||||
trustLevel: 0,
|
||||
aliases: [
|
||||
"rc",
|
||||
"refill",
|
||||
],
|
||||
description: 'refill the bots core',
|
||||
usages: [
|
||||
|
||||
],
|
||||
},
|
||||
execute (context) {
|
||||
const bot = context.bot
|
||||
bot.core.refill()
|
||||
bot.tellraw("@a", "Refilling core,...")
|
||||
},
|
||||
discordExecute (context) {
|
||||
const bot = context.bot;
|
||||
bot.core.refill();
|
||||
bot.tellraw("@a", "Refilling core,...");
|
||||
}
|
||||
}
|
|
@ -1,46 +0,0 @@
|
|||
const CommandError = require('../../util/command_error');
|
||||
module.exports = {
|
||||
data: {
|
||||
name: 'test',
|
||||
trustLevel: 0,
|
||||
aliases: [
|
||||
],
|
||||
description: 'Make me say something',
|
||||
usages: [
|
||||
"error stack <message>",
|
||||
"error message <message>",
|
||||
"message <message>"
|
||||
],
|
||||
},
|
||||
execute (context) {
|
||||
const bot = context.bot
|
||||
const args = context.arguments;
|
||||
if (!args && !args[0] && !args[1]) return
|
||||
switch (args[0]) {
|
||||
case 'error':
|
||||
switch (args[1]) {
|
||||
case 'stack':
|
||||
throw new Error(args.slice(2).join(' '));
|
||||
break
|
||||
case 'message':
|
||||
throw new CommandError(args.slice(2).join(' '));
|
||||
break
|
||||
}
|
||||
break;
|
||||
case "message":
|
||||
bot.tellraw("@a", [
|
||||
{
|
||||
text: `Hello, World!, Player: ${bot.getMessageAsPrismarine(context.source.player.displayName ?? context.source.player.profile.name)?.toMotd()}§r`,
|
||||
color: 'gray',
|
||||
bold: false
|
||||
},
|
||||
{
|
||||
text: ` Args: ${args.slice(1).join(' ')}`,
|
||||
color: 'gray',
|
||||
bold: false,
|
||||
}
|
||||
])
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,67 +0,0 @@
|
|||
const CommandError = require('../../util/command_error');
|
||||
const { request } = require('undici');
|
||||
module.exports = {
|
||||
data: {
|
||||
name: 'weather',
|
||||
trustLevel: 0,
|
||||
aliases: [
|
||||
],
|
||||
description: 'check the weather of cities',
|
||||
usages: [
|
||||
"<message>"
|
||||
],
|
||||
},
|
||||
async execute (context) {
|
||||
const bot = context.bot
|
||||
const args = context.arguments;
|
||||
const config = context.config;
|
||||
const source = context.source;
|
||||
try {
|
||||
let component = [];
|
||||
const weather = await request(`https://api.weatherapi.com/v1/current.json?key=${config.weatherApiKey}&q=${args.join(' ')}`);
|
||||
const info = await weather.body.json();
|
||||
component.push({
|
||||
translate: "%s: %s\n%s: %s\n%s: %s\n%s: %s\n%s: %s\n%s: %s%s (%s%s)\n%s: %s %s %s (%s %s %s)\n%s: %s\n%s: %s",
|
||||
color: config.colors.commands.tertiary,
|
||||
with: [
|
||||
{ text: "Location", color: config.colors.commands.primary },
|
||||
{ text: `${info.location.name}, ${info.location.region}, ${info.location.country}`, color: config.colors.commands.secondary },
|
||||
{ text: "Latitude", color: config.colors.commands.primary },
|
||||
{ text: `${info.location.lat}`, color: config.colors.integer },
|
||||
{ text: "Longitude", color: config.colors.commands.primary },
|
||||
{ text: `${info.location.lon}`, color: config.colors.integer },
|
||||
{ text: "Time zone", color: config.colors.commands.primary },
|
||||
{ text: `${info.location.tz_id}`, color: config.colors.commands.secondary },
|
||||
{ text: "Time", color: config.colors.commands.primary },
|
||||
{ text: `${new Date().toLocaleTimeString("en-US", { timeZone: info.location.tz_id, })}`, color: config.colors.integer },
|
||||
{ text: "Temp", color: config.colors.commands.primary },
|
||||
{ text: `${info.current.temp_c}`, color: config.colors.integer },
|
||||
{ text: "\u00b0C", color: config.colors.commands.secondary },
|
||||
{ text: `${info.current.temp_f}`, color: config.colors.integer },
|
||||
{ text: "\u00b0F", color: config.colors.commands.secondary },
|
||||
{ text: "Wind speed" , color: config.colors.commands.primary },
|
||||
{ text: `${info.current.wind_kph}`, color: config.colors.integer },
|
||||
{ text: `kph`, color: config.colors.commands.secondary },
|
||||
{ text: `${info.current.wind_dir}`, color: config.colors.commands.secondary },
|
||||
{ text: `${info.current.wind_mph}`, color: config.colors.integer },
|
||||
{ text: `mph`, color: config.colors.commands.secondary },
|
||||
{ text: `${info.current.wind_dir}`, color: config.colors.commands.secondary },
|
||||
{ text: "Condition", color: config.colors.commands.primary },
|
||||
{ text: `${info.current.condition.text}`, color: config.colors.commands.secondary },
|
||||
{ text: "Humidity", color: config.colors.commands.primary },
|
||||
{ text: `${info.current.humidity}`, color: config.colors.integer },
|
||||
]
|
||||
})
|
||||
bot.tellraw("@a", component)
|
||||
} catch (e) {
|
||||
if (e.toString() === "TypeError: Cannot read properties of undefined (reading 'name')" && args.length !== 0) {
|
||||
bot.chat.message('The location is invalid please try a valid location');
|
||||
} else if (args.length === 0) {
|
||||
bot.chat.message('there were no arguments detected')
|
||||
} else {
|
||||
bot.chat.message(`${e.toString()}`);
|
||||
console.warn(e.stack);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,32 +0,0 @@
|
|||
const wiki = require('wikipedia')
|
||||
const CommandError = require('../../util/command_error')
|
||||
const { EmbedBuilder } = require('discord.js')
|
||||
module.exports = {
|
||||
data: {
|
||||
name: 'wiki',
|
||||
description: 'wikipedia',
|
||||
trustLevel: 0,
|
||||
aliases: [
|
||||
'wikipedia'
|
||||
],
|
||||
usages:[
|
||||
"<article>"
|
||||
],
|
||||
},
|
||||
async execute (context) {
|
||||
const source = context.source
|
||||
const args = context.arguments
|
||||
const bot = context.bot
|
||||
try {
|
||||
const page = await wiki.page(args.join(' '))
|
||||
const summary = await page.intro();
|
||||
bot.tellraw(`@a`, { text: `${summary}`, color: 'gray' });
|
||||
} catch (error) {
|
||||
if (error.toString() === "pageError: TypeError: Cannot read properties of undefined (reading 'pages')") {
|
||||
bot.tellraw(`@a`, { text: 'Article not found!', color: 'dark_red' })
|
||||
} else {
|
||||
bot.tellraw(`@a`, `${error.toString()}`)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
27
src/commands/rc.js
Normal file
27
src/commands/rc.js
Normal file
|
@ -0,0 +1,27 @@
|
|||
const CommandError = require('../util/command_error')
|
||||
module.exports = {
|
||||
name: 'refillcore',
|
||||
description:['refill the bots core'],
|
||||
trustLevel: 0,
|
||||
aliases:['rc'],
|
||||
usages:[""],
|
||||
execute (context) {
|
||||
const bot = context.bot
|
||||
|
||||
if (bot.options.useChat || bot.options.isCreayun) {
|
||||
throw new CommandError('&4Could not fill core because useChat or isCreayun is active!')
|
||||
} else {
|
||||
bot.core.refill()
|
||||
bot.sendFeedback('refilling core,......')
|
||||
}
|
||||
},
|
||||
discordExecute (context) {
|
||||
const bot = context.bot;
|
||||
if (bot.options.useChat || bot.options.isCreayun) {
|
||||
throw new CommandError('&4Could not fill core because Coreless mode is active!')
|
||||
} else {
|
||||
bot.core.refill()
|
||||
bot.discord.Message.reply('refilling core,......')
|
||||
}
|
||||
}
|
||||
}
|
30
src/commands/reconnect.js
Normal file
30
src/commands/reconnect.js
Normal file
|
@ -0,0 +1,30 @@
|
|||
const CommandError = require('../util/command_error')
|
||||
const { EmbedBuilder } = require('discord.js');
|
||||
module.exports = {
|
||||
name: 'reconnect',
|
||||
description:['reconnect the bot when?'],
|
||||
trustLevel: 1,
|
||||
aliases:['rec', 'end', 'reconnect-client'],
|
||||
usage:[""],
|
||||
execute (context) {
|
||||
const bot = context.bot
|
||||
const message = context.arguments.join(' ')
|
||||
const args = context.arguments
|
||||
const source = context.source
|
||||
bot.sendFeedback({ text: `Reconnecting to ${bot.options.host}:${bot.options.port}`, color: 'dark_green'})
|
||||
bot._client.end(`Reconnecting to ${bot.options.host}:${bot.options.port} requested by ${bot.getMessageAsPrismarine(source?.player?.displayName ?? source?.player?.profile?.name)?.toMotd()}`)
|
||||
},
|
||||
discordExecute (context) {
|
||||
const bot = context.bot;
|
||||
const source = context.source;
|
||||
const Embed = new EmbedBuilder()
|
||||
.setColor(`${bot.Commands.colors.discord.embed}`)
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription(`Reconnecting to ${bot.options.host}:${bot.options.port}`)
|
||||
bot?.discord?.Message?.reply({embeds: [Embed]})
|
||||
bot._client.end(`Reconnecting to ${bot.options.host}:${bot.options.port} requested by ${source?.player?.displayName ??source?.player?.profile?.name}`)
|
||||
}
|
||||
}
|
||||
/*context.source.sendFeedback('farding right now....')
|
||||
process.exit(1)
|
||||
*/
|
44
src/commands/reload.js
Normal file
44
src/commands/reload.js
Normal file
|
@ -0,0 +1,44 @@
|
|||
const { EmbedBuilder } = require('discord.js')
|
||||
const CommandError = require('../util/command_error')
|
||||
module.exports = {
|
||||
name: 'reload',
|
||||
description:['Reload the bots files'],
|
||||
aliases:[],
|
||||
trustLevel: 0,
|
||||
usage:["reload"],
|
||||
execute (context) {
|
||||
const bot = context.bot
|
||||
const args = context.arguments
|
||||
const source = context.source
|
||||
try {
|
||||
|
||||
// bot.sendFeedback({text:'Reloading crap'});
|
||||
for (const eachBot of bot.bots) {
|
||||
eachBot.commandReload()
|
||||
}
|
||||
} catch(e) {
|
||||
bot.sendFeedback(e.stack)
|
||||
}
|
||||
if (bot.options.isCreayun) {
|
||||
bot.chat('Reloading shit')
|
||||
} else {
|
||||
bot.sendFeedback({text:'Reloading Shit'})
|
||||
}
|
||||
},
|
||||
discordExecute(context) {
|
||||
const bot = context.bot
|
||||
const source = context.source
|
||||
try {
|
||||
const Embed = new EmbedBuilder()
|
||||
.setColor(`${bot.Commands.colors.discord.embed}`)
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription(`reloading crap`)
|
||||
bot.discord.Message.reply({ embeds: [Embed] })
|
||||
for (const eachBot of bot.bots) {
|
||||
eachBot.commandReload()
|
||||
}
|
||||
} catch(e) {
|
||||
throw new CommandError(e.stack)
|
||||
}
|
||||
}
|
||||
}
|
204
src/commands/sctoggle.js
Normal file
204
src/commands/sctoggle.js
Normal file
|
@ -0,0 +1,204 @@
|
|||
const CommandError = require('../util/command_error.js')
|
||||
module.exports = {
|
||||
name: 'sctoggle',
|
||||
description:['toggle the selfcare'],
|
||||
aliases:['selfcaretoggle'],
|
||||
trustLevel: 1,
|
||||
usage:["vanish","mute","god","tptoggle","nickname","username","cspy","skin","gmc","op","prefix","on/off/true/false"],
|
||||
execute (context) {
|
||||
const bot = context.bot
|
||||
const message = context.arguments.join(' ')
|
||||
const source = context.source
|
||||
const args = context.arguments
|
||||
if (!args && !args[0] && !args[1] && !args[2] && !args[3]) return
|
||||
switch (args[1]) {
|
||||
case 'vanish':
|
||||
if (args[2] === 'false' || args[2] === 'off'){
|
||||
bot.sendFeedback([{text:'Vanish is ',color:'dark_gray'},{text:'Disabled',color:'dark_red'}])
|
||||
bot.options.selfcare.vanished = false
|
||||
bot.command('essentials:vanish off')
|
||||
return
|
||||
}else if (args[2] === 'true' || args[2] === 'on'){
|
||||
bot.sendFeedback([{text:'Vanish is ',color:'dark_gray'},{text:'Enabled',color:'dark_green'}])
|
||||
bot.options.selfcare.vanished = true
|
||||
bot.command('essentials:vanish on')
|
||||
return
|
||||
}else if (args[2] !== 'true' ?? 'false' ?? 'off' ?? 'on'){
|
||||
throw new CommandError({text:'Invalid argument! the arguments are true false off on',color:'dark_red'})
|
||||
return
|
||||
}
|
||||
break
|
||||
case 'mute':
|
||||
if (args[2] === 'false' || args[2] === 'off'){
|
||||
bot.sendFeedback([{text:'Mute selfcare is ',color:'dark_gray'},{text:'Disabled',color:'dark_red'}])
|
||||
bot.options.selfcare.unmuted = false
|
||||
return
|
||||
}
|
||||
if (args[2] === 'true' || args[2] === 'on'){
|
||||
bot.sendFeedback([{text:'Mute selfcare is ',color:'dark_gray'},{text:'Disabled',color:'dark_red'}])
|
||||
bot.options.selfcare.unmuted = true
|
||||
|
||||
return
|
||||
}else if (args[2] !== 'true' ?? 'false' ?? 'off' ?? 'on'){
|
||||
throw new CommandError({text:'Invalid argument! the arguments are true false on off'})
|
||||
return
|
||||
}
|
||||
break
|
||||
case 'prefix':
|
||||
if (args[2] === 'false' || args[2] === 'off'){
|
||||
bot.sendFeedback([{text:'Prefix selfcare is ',color:'dark_gray'},{text:'Disabled',color:'dark_red'}])
|
||||
bot.options.selfcare.prefix = false
|
||||
return
|
||||
}
|
||||
if (args[2] === 'true' || args[2] === 'on'){
|
||||
bot.sendFeedback([{text:'Prefix selfcare is now ',color:'dark_gray'},{text:'Enabled',color:'dark_green'}])
|
||||
bot.options.selfcare.prefix = true
|
||||
return
|
||||
}
|
||||
else if (args[2] !== 'true' ?? 'false' ?? 'off' ?? 'on'){
|
||||
throw new CommandError({text:'Invalid argument! the arguments are true false on off'})
|
||||
return
|
||||
|
||||
}
|
||||
break
|
||||
case 'cspy':
|
||||
if (args[2] === 'false' || args[2] === 'off'){
|
||||
bot.sendFeedback([{text:'cspy selfcare is ',color:'dark_gray'},{text:'Disabled',color:'dark_red'}])
|
||||
bot.options.selfcare.cspy = false
|
||||
return
|
||||
}
|
||||
if (args[2] === 'true' || args[2] === 'on'){
|
||||
bot.sendFeedback([{text:'cspy selfcare is now ',color:'dark_gray'},{text:'Enabled',color:'dark_green'}])
|
||||
bot.options.selfcare.cspy = true
|
||||
return
|
||||
}
|
||||
else if (args[2] !== 'true' ?? 'false' ?? 'off' ?? 'on'){
|
||||
throw new CommandError({text:'Invalid argument! the arguments are true false on off'})
|
||||
return
|
||||
}
|
||||
break
|
||||
case 'tptoggle':
|
||||
if (args[2] === 'false' || args[2] === 'off'){
|
||||
bot.sendFeedback([{text:'Tptoggle selfcare is ',color:'dark_gray'},{text:'Disabled',color:'dark_red'}])
|
||||
bot.options.selfcare.tptoggle = false
|
||||
return
|
||||
}
|
||||
if (args[2] === 'true' || args[2] === 'on'){
|
||||
bot.sendFeedback([{text:'Tptoggle selfcare is now ',color:'dark_gray'},{text:'Enabled',color:'dark_green'}])
|
||||
bot.options.selfcare.tptoggle = true
|
||||
return
|
||||
}
|
||||
else if (args[2] !== 'true' ?? 'false' ?? 'off' ?? 'on'){
|
||||
throw new CommandError({text:'Invalid argument! the arguments are true false on off'})
|
||||
return
|
||||
|
||||
}
|
||||
break
|
||||
case 'skin':
|
||||
if (args[2] === 'false' || args[2] === 'off'){
|
||||
bot.sendFeedback([{text:'Skin selfcare is ',color:'dark_gray'},{text:'Disabled',color:'dark_red'}])
|
||||
bot.options.selfcare.skin.enabled = false
|
||||
return
|
||||
}
|
||||
if (args[2] === 'true' || args[2] === 'on'){
|
||||
bot.sendFeedback([{text:'Skin selfcare is now ',color:'dark_gray'},{text:'Enabled',color:'dark_green'}])
|
||||
bot.options.selfcare.skin.enabled = true
|
||||
return
|
||||
}
|
||||
else if (args[2] !== 'true' ?? 'false' ?? 'off' ?? 'on'){
|
||||
throw new CommandError({text:'Invalid argument! the arguments are true false on off'})
|
||||
return
|
||||
|
||||
}
|
||||
break
|
||||
case 'gmc':
|
||||
if (args[2] === 'false' || args[2] === 'off'){
|
||||
bot.sendFeedback([{text:'gmc selfcare is ',color:'dark_gray'},{text:'Disabled',color:'dark_red'}])
|
||||
bot.options.selfcare.gmc = false
|
||||
return
|
||||
}
|
||||
if (args[2] === 'true' || args[2] === 'on'){
|
||||
bot.sendFeedback([{text:'gmc selfcare is now ',color:'dark_gray'},{text:'Enabled',color:'dark_green'}])
|
||||
bot.options.selfcare.gmc = true
|
||||
return
|
||||
}
|
||||
else if (args[2] !== 'true' ?? 'false' ?? 'off' ?? 'on'){
|
||||
throw new CommandError({text:'Invalid argument! the arguments are true false on off'})
|
||||
return
|
||||
|
||||
}
|
||||
break
|
||||
case 'op':
|
||||
if (args[2] === 'false' || args[2] === 'off'){
|
||||
bot.sendFeedback([{text:'op selfcare is ',color:'dark_gray'},{text:'Disabled',color:'dark_red'}])
|
||||
bot.options.selfcare.op = false
|
||||
return
|
||||
}
|
||||
if (args[2] === 'true' || args[2] === 'on'){
|
||||
bot.sendFeedback([{text:'op selfcare is now ',color:'dark_gray'},{text:'Enabled',color:'dark_green'}])
|
||||
bot.options.selfcare.op = true
|
||||
return
|
||||
}
|
||||
else if (args[2] !== 'true' ?? 'false' ?? 'off' ?? 'on'){
|
||||
throw new CommandError({text:'Invalid argument! the arguments are true false on off'})
|
||||
return
|
||||
|
||||
}
|
||||
break
|
||||
case 'nickname':
|
||||
if (args[2] === 'false' || args[2] === 'off'){
|
||||
bot.sendFeedback([{text:'nickname selfcare is ',color:'dark_gray'},{text:'Disabled',color:'dark_red'}])
|
||||
bot.options.selfcare.nickname = false
|
||||
return
|
||||
}
|
||||
if (args[2] === 'true' || args[2] === 'on'){
|
||||
bot.sendFeedback([{text:'nickname selfcare is now ',color:'dark_gray'},{text:'Enabled',color:'dark_green'}])
|
||||
bot.options.selfcare.nickname = true
|
||||
return
|
||||
}
|
||||
else if (args[2] !== 'true' ?? 'false' ?? 'off' ?? 'on'){
|
||||
throw new CommandError({text:'Invalid argument! the arguments are true false on off'})
|
||||
return
|
||||
|
||||
}
|
||||
break
|
||||
case 'username':
|
||||
if (args[2] === 'false' || args[2] === 'off'){
|
||||
bot.sendFeedback([{text:'username selfcare is ',color:'dark_gray'},{text:'Disabled',color:'dark_red'}])
|
||||
bot.options.selfcare.username = false
|
||||
return
|
||||
}
|
||||
if (args[2] === 'true' || args[2] === 'on'){
|
||||
bot.sendFeedback([{text:'username selfcare is now ',color:'dark_gray'},{text:'Enabled',color:'dark_green'}])
|
||||
bot.options.selfcare.username = true
|
||||
return
|
||||
}
|
||||
else if (args[2] !== 'true' ?? 'false' ?? 'off' ?? 'on'){
|
||||
throw new CommandError({text:'Invalid argument! the arguments are true false on off'})
|
||||
return
|
||||
|
||||
}
|
||||
break
|
||||
case 'god':
|
||||
if (args[2] === 'false' || args[2] === 'off'){
|
||||
bot.sendFeedback([{text:'god selfcare is ',color:'dark_gray'},{text:'Disabled',color:'dark_red'}])
|
||||
bot.options.selfcare.god = false
|
||||
return
|
||||
}
|
||||
if (args[2] === 'true' || args[2] === 'on'){
|
||||
bot.sendFeedback([{text:'god selfcare is now ',color:'dark_gray'},{text:'Enabled',color:'dark_green'}])
|
||||
bot.options.selfcare.god = true
|
||||
return
|
||||
}
|
||||
else if (args[2] !== 'true' ?? 'false' ?? 'off' ?? 'on'){
|
||||
throw new CommandError({text:'Invalid argument! the arguments are true false on off'})
|
||||
return
|
||||
|
||||
}
|
||||
break
|
||||
default:
|
||||
bot.sendFeedback({text:'Invalid argument!',color:'dark_red'})
|
||||
bot.sendFeedback({text:'vanish mute prefix cspy skin sctoggle gmc op nickname username god',color:'dark_green'})
|
||||
}
|
||||
}
|
||||
}
|
66
src/commands/selfdestruct.js
Normal file
66
src/commands/selfdestruct.js
Normal file
|
@ -0,0 +1,66 @@
|
|||
const CommandError = require('../util/command_error')
|
||||
|
||||
let timer = null
|
||||
|
||||
module.exports = {
|
||||
name: 'selfdestruct',
|
||||
trustLevel: 2,
|
||||
aliases:['sfd'],
|
||||
description:['selfdestruct server'],
|
||||
usage:[""],
|
||||
execute (context) {
|
||||
//throw new CommandError('temp disabled')
|
||||
|
||||
//bot went brr
|
||||
|
||||
//ima just connect to your server to work on the bot ig
|
||||
// idk
|
||||
const bot = context.bot
|
||||
const args = context.arguments
|
||||
|
||||
if (args[1] === 'clear' || args[1] === 'stop') {
|
||||
clearInterval(this.timer)
|
||||
this.timer = undefined
|
||||
|
||||
context.source.sendFeedback('Cloop Stopped', false)
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
if (bot.options.isCreayun || bot.options.useChat) {
|
||||
throw new CommandError(`Cannot execute command because isCreayun or useChat is enabled!`)
|
||||
} else {
|
||||
if (this.timer !== null) return
|
||||
this.timer = setInterval(function () {
|
||||
bot.core.run('day')
|
||||
bot.core.run('night')
|
||||
bot.core.run('clear @a')
|
||||
bot.core.run('effect give @a nausea')
|
||||
bot.core.run('effect give @a slowness')
|
||||
bot.core.run('give @a bedrock')
|
||||
bot.core.run('give @a sand')
|
||||
bot.core.run('give @a dirt')
|
||||
bot.core.run('give @a diamond')
|
||||
bot.core.run('give @a tnt')
|
||||
bot.core.run('give @a crafting_table')
|
||||
bot.core.run('give @a diamond_block')
|
||||
bot.core.run('smite *')
|
||||
bot.core.run('kaboom')
|
||||
bot.core.run('essentials:ekill *')
|
||||
bot.core.run('nuke')
|
||||
bot.core.run('eco give * 1000')
|
||||
bot.core.run('day')
|
||||
bot.core.run('night')
|
||||
bot.core.run('clear @a')
|
||||
bot.core.run('summon fireball 115 62 -5')
|
||||
bot.core.run('sudo * /fast')
|
||||
bot.core.run('sudo * gms')
|
||||
bot.core.run('sudo * /sphere tnt 75')
|
||||
bot.core.run('sudo * kaboom')
|
||||
}, 500)
|
||||
bot.on('end',(data) =>{
|
||||
clearInterval(this.timer)
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
50
src/commands/servereval.js
Normal file
50
src/commands/servereval.js
Normal file
|
@ -0,0 +1,50 @@
|
|||
const CommandError = require('../util/command_error')
|
||||
const { stylize } = require('../util/eval_colors')
|
||||
const util = require('util')
|
||||
const { EmbedBuilder } = require('discord.js')
|
||||
module.exports = {
|
||||
name: 'servereval',
|
||||
description:['run code unisolated'],
|
||||
trustLevel: 3,
|
||||
aliases:['svreval'],
|
||||
usage: ['<js code>'],
|
||||
execute (context) {
|
||||
const bot = context.bot;
|
||||
const source = context.source;
|
||||
const args = context.arguments;
|
||||
const script = args.slice(1).join(' ');
|
||||
if (!args && !args[0] && !args[1] && !args[2] && !args[3] && !args[4] ) return
|
||||
try {
|
||||
if (bot.options.useChat || bot.options.useChat) {
|
||||
bot.chat(bot.getMessageAsPrismarine({ text: util.inspect(eval(script), { stylize }).substring(0, 32700) })?.toMotd().replaceAll('§','&'))
|
||||
} else {
|
||||
bot.sendFeedback({ text: util.inspect(eval(script), { stylize }).substring(0, 32700) })
|
||||
bot.sendFeedback({ text: `Script input: ${script}` })
|
||||
}
|
||||
} catch (err) {
|
||||
if (bot.options.isCreayun || bot.options.useChat) {
|
||||
bot.chat(`&4${err.message}`)
|
||||
} else {
|
||||
bot.sendFeedback({ text: err.message, color: 'red' })
|
||||
}
|
||||
}
|
||||
},
|
||||
discordExecute (context) {
|
||||
const bot = context.bot;
|
||||
const args = context.arguments;
|
||||
const source = context.source;
|
||||
try {
|
||||
let Embed = new EmbedBuilder()
|
||||
.setColor(`${bot.Commands.colors.discord.embed}`)
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription(bot.getMessageAsPrismarine('```js\n' + util.inspect(eval(args.join(' '))) + '```')?.toMotd())
|
||||
bot.discord.Message.reply({ embeds: [Embed] })
|
||||
} catch (e) {
|
||||
let Embed = new EmbedBuilder()
|
||||
.setColor(`${bot.Commands.colors.discord.error}`)
|
||||
.setTitle(`${this.name} Command`)
|
||||
.setDescription(e.toString())
|
||||
bot.discord.Message.reply({ embeds: [Embed] })
|
||||
}
|
||||
}
|
||||
}
|
33
src/commands/serverterminal.js
Normal file
33
src/commands/serverterminal.js
Normal file
|
@ -0,0 +1,33 @@
|
|||
const CommandError = require('../util/command_error')
|
||||
const { spawn } = require('node:child_process');
|
||||
module.exports = {
|
||||
name: 'serverterminal', // command name here
|
||||
description: ['run commands unisolated'], // command desc here
|
||||
aliases: [], // command aliases here if there is any
|
||||
trustLevel: 3, // 0 = public, 1 = trusted, 2 = owner, 3 = console
|
||||
usage: [], // command usage here
|
||||
execute (context) {
|
||||
const bot = context.bot
|
||||
const args = context.arguments
|
||||
const source = context.source
|
||||
const command = spawn('sh' , ['-c', `${args.slice(1).join(' ')}`]);
|
||||
try {
|
||||
command.stdout.on('data', (data, err) => {
|
||||
bot.tellraw(`${bot.getMessageAsPrismarine(`${data}`)?.toMotd().replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g, '')}`);
|
||||
console.log(err)
|
||||
});
|
||||
|
||||
command.on('close', (data) => {
|
||||
console.log(`child process close all stdio with code ${data}`);
|
||||
});
|
||||
command.stderr.on('data', (data) => {
|
||||
bot.tellraw(data.toString());
|
||||
});
|
||||
command.on('exit', (code) => {
|
||||
console.log(`child process exited with code ${code}`);
|
||||
});
|
||||
} catch (e) {
|
||||
bot.sendError(e.toString())
|
||||
}
|
||||
}
|
||||
}
|
24
src/commands/soundbreaker.js
Normal file
24
src/commands/soundbreaker.js
Normal file
|
@ -0,0 +1,24 @@
|
|||
const CommandError = require('../util/command_error')
|
||||
module.exports = {
|
||||
name: 'soundbreaker',
|
||||
description:["make peoples ears bleed"],
|
||||
aliases:["earpierce","earhell"],
|
||||
usage:[""],
|
||||
trustLevel:1,
|
||||
execute (context) {
|
||||
const bot = context.bot
|
||||
const message = context.arguments.join(' ')
|
||||
if (bot.options.isCreayun || bot.options.useChat) {
|
||||
throw new CommandError('Cannot execute command because isCreayun or useChat is enabled!')
|
||||
} else {
|
||||
bot.core.run('sudo * execute at @a run playsound entity.ender_dragon.death master @a ~ ~ ~ 10000 0.1 1')
|
||||
bot.core.run('sudo * execute at @a run playsound entity.wither.death master @a ~ ~ ~ 10000 0.1 1')
|
||||
bot.core.run('sudo * execute at @a run playsound entity.ender_dragon.death master @a ~ ~ ~ 10000 0.1 1')
|
||||
bot.core.run('sudo * execute at @a run playsound entity.wither.death master @a ~ ~ ~ 10000 0.1 1')
|
||||
bot.core.run('sudo * execute at @a run playsound entity.ender_dragon.death master @a ~ ~ ~ 10000 0.1 1')
|
||||
bot.core.run('sudo * execute at @a run playsound entity.wither.death master @a ~ ~ ~ 10000 0.1 1')
|
||||
bot.core.run('sudo * execute at @a run playsound entity.ender_dragon.death master @a ~ ~ ~ 10000 0.1 1')
|
||||
bot.core.run('sudo * execute at @a run playsound entity.wither.death master @a ~ ~ ~ 10000 0.1 1')
|
||||
}
|
||||
}
|
||||
}
|
41
src/commands/terminal.js
Normal file
41
src/commands/terminal.js
Normal file
|
@ -0,0 +1,41 @@
|
|||
const CommandError = require('../util/command_error')
|
||||
const Docker = require('dockerode')
|
||||
const stream = require('stream')
|
||||
const { exec } = require('child_process')
|
||||
const finalStream = require('final-stream')
|
||||
module.exports = {
|
||||
name: 'terminal', // command name here
|
||||
description: ['run terminal commands in a docker image'], // command desc here
|
||||
aliases: ["exec"], // command aliases here if there is any
|
||||
trustLevel: 0, // -1 = disabled, 0 = public, 1 = trusted, 2 = owner, 3 = console
|
||||
usage: [], // command usage here
|
||||
async execute (context) {
|
||||
const bot = context.bot
|
||||
const args = context.arguments
|
||||
const source = context.source
|
||||
const docker = new Docker()
|
||||
if(!args && !args[0] && !args[1] && !args[2] && !args[3]) return
|
||||
switch(args[0].toLowerCase()){
|
||||
case 'run':
|
||||
try {
|
||||
const stdout = new stream.PassThrough();
|
||||
const docker = new Docker({ socketPath: '/var/run/docker.sock' });
|
||||
const container = await docker.run('alpine', ['ash', '-c',`${args.slice(1).join(' ')}`], stdout);
|
||||
// bot.tellraw(bot.getMessageAsPrismarine(`${container}`)?.toString())
|
||||
const data = await finalStream(stdout).then(buffer => buffer.toString());
|
||||
bot.tellraw(data);
|
||||
// console.log(data)
|
||||
} catch(e) {
|
||||
if (e.toString() === "Error: connect ENOENT /var/run/docker.sock" || e.toString() === "Error: connect EACCES /var/run/docker.sock") {
|
||||
bot.sendError("The bot isnt running as root or docker daemon isnt started!")
|
||||
} else {
|
||||
bot.sendFeedback({text:`${e.toString()}`})
|
||||
}
|
||||
}
|
||||
break
|
||||
case "rebuild":
|
||||
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
32
src/commands/theme.js
Normal file
32
src/commands/theme.js
Normal file
|
@ -0,0 +1,32 @@
|
|||
const CommandError = require('../util/command_error');
|
||||
module.exports = {
|
||||
name: 'theme',
|
||||
description:['change the bots theme'],
|
||||
aliases:[],
|
||||
trustLevel: 0,
|
||||
usage:["<color 1> <color 2> <color 3>"],
|
||||
execute (context) {
|
||||
const bot = context.bot;
|
||||
const args = context.arguments;
|
||||
const source = context.source;
|
||||
if (!args && !args[0] && !args[1] && !args[2] && !args[3]) return
|
||||
if (args[0] === undefined || args[1] === undefined || args[2] === undefined) {
|
||||
bot.Commands.colors.help.pub_lickColor = '#2b7589'
|
||||
bot.Commands.colors.help.t_rustedColor = '#219696'
|
||||
bot.Commands.colors.help.own_herColor = '#2081c3'
|
||||
bot.sendFeedback(`Reseting theme colors,.,.,..`)
|
||||
} else {
|
||||
bot.Commands.colors.help.pub_lickColor = args[0]
|
||||
bot.Commands.colors.help.t_rustedColor = args[1]
|
||||
bot.Commands.colors.help.own_herColor = args[2]
|
||||
bot.sendFeedback({text:`Set Help theme colors to ${bot.Commands.colors.help.pub_lickColor} ${bot.Commands.colors.help.t_rustedColor} ${bot.Commands.colors.help.own_herColor}`})
|
||||
}
|
||||
}
|
||||
}
|
||||
/*
|
||||
helpTheme:{
|
||||
pub_lickColor:"#00FFFF",
|
||||
t_rustedColor:"dark_purple",
|
||||
own_herColor:"dark_red",
|
||||
},
|
||||
*/
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue