2017-08-19 3 views
0

Ich habe ein seltsames Problem, während ich diesem Tutorial folge. Aufbau eines JS Discord Bot, wörtlich nur 33 Zeilen und seine Wurffehler über .send sind undefiniert. Ich habe gegoogelt und ich kann nichts finden, was dazu beigetragen hätte, näher daran zu arbeiten.Discord Bot Node JS einfacher Fehler .Send

const fs = require("fs"); 
const Discord = require("discord.js"); 
const client = new Discord.Client(); 
const config = require("./config.json"); 

client.login(config.token); 

client.on("ready",() => { 
    client.user.setGame(`on ${client.guilds.size} servers`); 
    console.log(`Ready to serve on ${client.guilds.size} servers, for ${client.users.size} users.`); 
}); 

client.on("guildMemberAdd", (member) => { 
    console.log(`New User ${member.user.username} has joined ${member.guild.name}`); 
    member.guild.defaultChannel.send(`${member.user} has joined this server`); 
}); 

client.on("message", (message) => { 

    if (!message.content.startsWith(config.prefix) || message.author.bot) return; 

    if (message.content.startsWith(config.prefix + "ping")) { 
     message.channel.send("pong!"); 
    } else 

    if (message.content.startsWith(config.prefix + "foo")) { 
     message.channel.send("bar!"); 
    } 
}); 

    client.on("error", (e) => console.error(e)); 
    client.on("warn", (e) => console.warn(e)); 
    client.on("debug", (e) => console.info(e)); 

Wenn lief, arbeitet die console.log ohne viel Aufhebens, aber die Nachrichtenkanal führt den folgenden Fehler in Powershell

C:\Users\super\Desktop\autoslap\mybot.js:18 
     member.guild.defaultChannel.send(`${member.user} has joined this server`); 
           ^

TypeError: Cannot read property 'send' of undefined 

Jede Hilfe würde geschätzt auf Standard, über frustriert, was etwas ist wahrscheinlich so einfach.

Antwort

0

Sie erhalten diesen Fehler, wenn der Standardkanal des Servers gelöscht wurde. Bisher konnten Sie den Standardkanal nicht löschen, aber jetzt können Sie. Erstellen Sie einen neuen Server und versuchen Sie es dort.

+0

Ich bin auf einem brandneuen Server arbeite, nur ich und der Bot – Slappy

+0

Sie sicher, dass es nicht etwas, hat mit dem perms auf dem Server zu tun? – Wright

+0

Ich denke, es hat etwas damit zu tun, dass meine Installationen nach einigen zusätzlichen Tests kaputt gehen. – Slappy

1

Ich weiß, dies ist eine späte Antwort und Sie haben vielleicht schon herausgefunden, wie man das macht, aber ich werde immer noch denen erklären, die Hilfe brauchen.

Stand 03/08/2017, gibt es keinen Standardkanal in Gilden auf Discord. Der #general Standardkanal kann gelöscht werden, und die guild.defaultChannel Eigenschaft funktioniert nicht mehr - Von https://anidiots.guide/frequently-asked-questions.html

Wenn Sie eine Alternative wünschen, den Code von https://anidiots.guide/frequently-asked-questions.html kann den Trick. Geben Sie einfach die Website ein und scrollen Sie nach unten, bis Sie den Standardkanal sehen!

Wenn Ihr Bot Administrator-Perm hat, ist der "erste schreibbare Kanal" der oberste. Es könnte ein beliebiger Kanal sein. Wenn ihr Standardkanal gelöscht wurde, können Sie möglicherweise viele Leute nerven.

Hoffe, das hilft!