Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
VariablenProvided text for message may not be null
[CODE lang="java" title="Code"]public class beispiel {
public String[] name;
public beispiel {
name = new String[11];
if(args[0].equalsIgnoreCase("settext")) {
Integer wich = new Integer(args[1]);
channel.sendMessage(name[wich]).queue();
}
}
}[/CODE]
Ich bin noch recht neu in Java und habe ein Problem mit einem Array. Ich mache grade einen Discordbot wo mit .settext "zahl" "Nachricht" und mit .gettext "zahl" und dann kommt eine Nachricht, mit der vorher eingeben, Nachricht.
.settext funktioniert, aber wenn ich .gettext mache, kommt die Fehlermeldung: "Provided text for message may not be null"
Hi. Wenn dieser Code funktioniert, dann fress ich einen Besen. Das ist ja noch nicht mal gültige Java-Syntax. Auch wird bei "settext" nichts gesendet, von daher kann die Fehlermeldung dort auch nicht auftreten. Von dem, was man hier erahnen kann, würde ich mal sagen, dass Du das Array zwar erzeugst, sich in dem Array aber keine Namen befinden und daher beim Versenden versucht wird, null zu verschicken. Zeig mal Deinen tatsächlichen Code, so kann man da wenig sagen.
public class beispiel {
public String[] name;
public void onMessageReceived(MessageReceivedEvent event) {
name = new String[11];
String message = event.getMessage().getContentDisplay();
if (event.isFromType(ChannelType.TEXT)) {
TextChannel channel = event.getTextChannel();
if (message.startsWith(".")) {
String[] args = message.substring(1).split(" ");
if (args.length > 0) {
if(args[0].equalsIgnoreCase("settext")) {
Integer wich = new Integer(args[1]);
name[wich] = args[2];
System.out.println(name[wich]);
//Da wird die nachricht ausgegebn die man eingegeben hat
}else if(args[0].equalsIgnoreCase("gettext")) {
Integer wich = new Integer(args[1]);
System.out.println(name[wich]);
//Da wird null ausgegeben
channel.sendMessage(name[wich]).queue();
}
}
}
}
Die Fehlermeldung kommt dann wenn ich .gettext 1 eingeben auf discord
Ja, in Zeile 5 legst Du ein neues Array an (dessen Elemente alle null sind) und in Zeile 30 versuchst Du, eines dieser Elemente (das in jedem Fall null ist) zu versenden.
Mmh, aber wenn ich settext 1 Hallo mache, ist doch der erste Array Slot mit "Hallo" belegt und wenn ich dann gettext 1 machen sollte doch "Hallo" ausgegeben werden, oder?
Es klappt jetzt Danke . Ich habe nun jetzt noch ein Problem ich splite ja mein String in der 16Zeile also wenn ich .settext 1 "Hallo hi" dann ist Hallo args[2] und Hi args[3] und ich schreibe in den Array "name" nur args[2]. Aber ich hätte gern das in args[2] Hallo und hi steht oder irgendwie anders