2015-04-07 51 views
0

當我運行某個命令時,我需要我正在查看的標誌來改變。用命令改變標誌說什麼

這裏是我當前的代碼:

if (cmd.getName().equalsIgnoreCase("ft")) { 
     if (!(p.hasPermission("ft.use"))) { 
      p.sendMessage(ChatColor.RED + "You do not have permission."); 
      return true; 
     } else { 
      Sign sign = (Sign) p.getTargetBlock(null, 10).getState(); 
      if (args.length == 0) { 
       p.sendMessage(ChatColor.RED + "Usage: /ft <name> <1/2/3/4>"); 
       return true; 
      } else if (args.length == 2) { 
       String name = args[0]; 
       String id = args[1]; 
       if (args[1].equalsIgnoreCase("1")) { 
        if (getConfig().get("FastTravel." + name + "." + 1) != null) { 
         p.sendMessage(ChatColor.RED + args[0] + " 1 already exists please use another ID."); 
         return true;   
        }else { 
         if(getConfig().get("FastTravel.Price") != null){ 
         sign.setLine(0, "[FastTravel]"); 
         sign.setLine(1, name + " 1"); 
         sign.setLine(3, (String) getConfig().get("FastTravel.Price")); 
         p.sendMessage(ChatColor.GREEN + "You set the FastTravel sign '" + name + " 1'."); 
         getConfig().set("FastTravel." + args[0] +"."+ 1, p.getLocation()); 
         saveConfig(); 
         return true; 
         }else { 
          p.sendMessage(ChatColor.RED + "The price for FastTravel has not been set."); 
          p.sendMessage(ChatColor.RED + "Please set the price by using /setprice <price>"); 
          return true; 
         } 
        } 
       } 
      } 
     } 

所以,如果有人在鍵入命令/ft Test 1,他們在看標誌應該是這樣的:

線路1:FastTravel]
線路2:試驗1
行3:(空白)
線路4:價格

所有的p.sendMessage() s工作正常,但標誌沒有改變。

回答

2

如果要更新符號的文本,你必須設置它的線後打電話到sign.update(true)

//set the sign's text 
sign.setLine(0, "[FastTravel]"); 
sign.setLine(1, name + " 1"); 
sign.setLine(3, (String) getConfig().get("FastTravel.Price")); 

//update the sign 
sign.update(true); 
+0

@ user4758973沒問題。另外,你可能想通過使用'if(p.getTargetBlock(null,10)instanceof Sign)'來檢查玩家的方塊前面是否是一個符號,然後將它投射到一個符號上。如果你不這樣做,你可能會得到['ClassCastException'](http://docs.oracle.com/javase/7/docs/api/java/lang/ClassCastException.html) – Jojodmo

+0

我補充說,在今天之後,我實現。謝謝! – user4758973