2016-06-14 70 views
0

我正在嘗試爲我的服務器(CraftBukkit 1.8.8)製作一個小插件,以在有人在我們的網站上捐贈時向服務器廣播簡單的自定義消息。用於廣播消息字符串問題的Bukkit插件

插件本身的工作原理,除了一個問題。它不會在郵件中包含任何空格/空格,所以「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

打轉轉好了後,我顯然忘了在加括號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();  
    } 

現在工作沒有任何問題。

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; 
} 

希望這個作品!