#javascript #discord.js
#javascript #discord.js
Вопрос:
Я пытаюсь это делать последние два часа. Я пытаюсь заставить своего бота сказать «ОН ДЕЛАЕТ ВЫСТРЕЛ» после того, как я изобразил смайлик с битой для пинг-понга. Я пытался сохранить эмодзи в const, но там написано ReferenceError: клиент не определен, пожалуйста, помогите, ty заранее
const Discord = require('discord.js');
const bot = new Discord.Client();
const fs = require("fs");
const token = 'token';
const PREFIX = '!';
var bat = ('https://i.ytimg.com/vi/FZzQGSBHdyk/maxresdefault.jpg');
const bat1 = client.emojis.cache.find(emoji => emoji.name === "bat1");
bot.on('ready', () =>{
console.log('This bot is online!');
})
bot.on('message', message =>{
let args = message.content.substring(PREFIX.length).split(" ");
switch(args[0]){
case 'ping':
message.channel.send('pong')
break;
case 'info':
message.channel.send('PingPongBot is a project Eefan and sc0rps is working on, which hopefully will turn into a fully playable discord game! PingPongBot will also have some helpers, the one we have so far is Bananaprey!')
break;
case 'bat':
message.channel.send(bat)
break;
}
})
bot.on('message', msg =>{
if(msg.content === bat1){
msg.reply('HE TAKES THE SHOT');
}
})
bot.login(token);
Комментарии:
1. я понимаю, что мне нужно заменить клиент на бота, но все равно не работает
2. Теперь это говорит об ошибке типа: bot.emojis. поиск — это не функция
3. Это
bot.emojis.cache.find()
4. К сожалению, даже тогда это все равно не работает
Ответ №1:
Вы пытаетесь получить эмодзи до того, как клиент Discord успел выполнить инициализацию и войти в систему, поэтому не можете получить доступ к эмодзи.
Предполагая, что вы работаете на Discord.js v12, приведенный ниже код должен работать:
const Discord = require('discord.js');
const bot = new Discord.Client();
const fs = require("fs");
const token = 'token';
const PREFIX = '!';
var bat = ('https://i.ytimg.com/vi/FZzQGSBHdyk/maxresdefault.jpg');
// Initialise bat1 as an empty variable
let bat1;
bot.on('ready', () =>{
// After the client has logged in, forward the emoji to bat1
bat1 = bot.emojis.cache.find(emoji => emoji.name === "bat1");
console.log('This bot is online!');
})
bot.on('message', message =>{
let args = message.content.substring(PREFIX.length).split(" ");
switch(args[0]){
case 'ping':
message.channel.send('pong')
break;
case 'info':
message.channel.send('PingPongBot is a project Eefan and sc0rps is working on, which hopefully will turn into a fully playable discord game! PingPongBot will also have some helpers, the one we have so far is Bananaprey!')
break;
case 'bat':
message.channel.send(bat)
break;
}
})
bot.on('message', msg =>{
if(msg.content === bat1){
msg.reply('HE TAKES THE SHOT');
}
})
bot.login(token);
Если вы используете v11, это должно быть bot.emojis.find
вместо.
Ответ №2:
Вы забыли изменить client на bot в своем коде:
const bat1 = bot.emojis.cache.find(emoji => emoji.name === "bat1");
Это должно сработать :))