2015-08-19 38 views
-3

Я пытаюсь создать генератор, который выплевывает руды каждые пару секунд.Генератор не работает должным образом

Проблема в том, что знак изменяется на генератор, но он не выплевывает руды.

@EventHandler 
    public void onSignChange(SignChangeEvent e) { 
      if (e.getLine(0).equalsIgnoreCase("DGEN")) { 
        e.setLine(0, "§0§lGENERATOR"); 
        e.setLine(1, "§bDiamond"); 
        e.setLine(2, "§0Level 1"); 
      } 
    } 

    @EventHandler 
    public void onPlayerInteract(PlayerInteractEvent e) { 
      if (!(e.getAction() == Action.RIGHT_CLICK_BLOCK)) return; 
      if((e.getClickedBlock().getType() == Material.SIGN_POST) || (e.getClickedBlock().getType() == Material.WALL_SIGN)){ 
       Sign s = (Sign) e.getClickedBlock().getState(); 
        if (s.getLine(1).equalsIgnoreCase("§0§lGENERATOR")) { 
         e.getPlayer().getWorld().dropItemNaturally(e.getPlayer().getLocation(), new ItemStack(Material.DIAMOND_ORE, 1)); 
          e.getPlayer().sendMessage(ChatColor.GREEN + "Diamond Gen works!"); 
        } 
      } 
    } 

ответ

2

Вы настраиваете линию 1 (вторая линия), как "§bDiamond":

e.setLine(1, "§bDiamond"); 

Так это утверждение:

if (s.getLine(1).equalsIgnoreCase("§0§lGENERATOR")) { [...] } 

никогда не будет true, так как линия 1 имеет значение от "§bDiamond".

+0

Я пробовал это, но он не работает. Теперь, когда я захожу в игру и пишу DGEN на знаке, Signchange не происходит – Dan2567

+0

Вы пытались отменить четность перед настройкой строк? Просто догадка. – Momo

Смежные вопросы