我正在尝试为我的服务器制作一个小插件(CraftBukkit 1.8.8),当有人在我们的网站上捐款时,向服务器广播一个简单的自定义消息。
插件本身在概念上有效,除了一个问题。它不会在消息中包含任何空格/空格,所以“hello world”它被广播为“helloworld”,这不是我想要的。
这是我第一次尝试使用java或bukkit插件进行编程,所以我对此仍然很新。我看到的关于广播的大多数文章都不涉及我的问题,所以任何帮助都会受到赞赏。
代码:
public final class DonateBroadcast extends JavaPlugin {
public void onEnable() {
System.out.println("DonateBroadcast enabled.");
}
public void onDisable() {
System.out.println("DonateBroadcast disabled.");
}
public boolean onCommand(CommandSender sender, Command command, String cmd, String[] args) {
if(cmd.equalsIgnoreCase("dbcast")) {
if((sender instanceof Player)) {
sender.sendMessage("This command must be executed by the console");
} else {
if(args.length == 0) {
System.out.println(ChatColor.DARK_RED + "You need to type in a message!");
} else {
getServer().broadcastMessage(ChatColor.DARK_GRAY + "[" + ChatColor.GREEN + "WEB" + ChatColor.DARK_GRAY + "] " + ChatColor.GOLD + message(args));
}
}
}
return false;
}
public String message(String[] args) {
StringBuilder builder = new StringBuilder();
for(int i = 0; i < args.length; i++)
builder.append(args[i]);
builder.append(" ");
return builder.toString();
}
}
请注意,我在youtube上的教程后对此进行了编码。
答案 0 :(得分:0)
好好玩了之后,我显然忘了为for语句添加括号:
public String message(String[] args) {
StringBuilder builder = new StringBuilder();
for(int i = 0; i < args.length; i++)
builder.append(args[i]);
builder.append(" ");
return builder.toString();
}
所以将其改为:
public String message(String[] args) {
StringBuilder builder = new StringBuilder();
for(int i = 0; i < args.length; i++)
{
builder.append(args[i]);
builder.append(" ");
}
return builder.toString();
}
现在没有任何问题。
答案 1 :(得分:0)
从它的外观来看,builder.append(" ")
对你不起作用,当我用自己的/ msg命令制作我的插件时,我遇到了同样的问题。但我发现了一种不同的方法。而不是
public String message(String[] args) {
StringBuilder builder = new StringBuilder();
for(int i = 0; i < args.length; i++)
builder.append(args[i]);
builder.append(" ");
return builder.toString();
}
使用:
public String message(String[] args){
String string = "";
for (int i = 0; i != args.length; i++){
msg += args[i] + " ";
}
return msg;
}
希望这有效!