Помогите Вывод сообщения при 2-ом клике...

  • Автор темы Автор темы Kurumi
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Kurumi

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Kurumi
Всем привет, я знаю что своими вопросами уже всех до***л, но я хочу закончить свой говноплагин.
Как сделать так, чтобы при первом нажатии на определенный блок отправлялось сообщение, допустим, "При повторном нажатии с вас будет списано 500$" и при втором нажатии происходило действие?
 
Всем привет, я знаю что своими вопросами уже всех до***л, но я хочу закончить свой говноплагин.
Как сделать так, чтобы при первом нажатии на определенный блок отправлялось сообщение, допустим, "При повторном нажатии с вас будет списано 500$" и при втором нажатии происходило действие?
Записываешь игрока в WeakHashMap и наверное стоит записать время, проверяй если игрок есть в хешмапе и прошло меньше времени чем максимум, то выполняй действие которое нужно.
 
if(!arraylist.contains(p.getName().toLowerCase()){
arraylist.add(p.getName.toLowerCase();
"При повторном нажатии с вас будет списано 500$"
} else {
econ.withdrawPlayer(p, i);//вроде бы так
}
Это если не нужно сохранять после рестарта сервера.
 
PHP:
public void onInteract(PlayerInteractEvent e)
    {
        if(e.getAction() == Action.RIGHT_CLICK_BLOCK && e.getAction() != Action.RIGHT_CLICK_AIR)
            {
                ItemStack item = e.getPlayer().getItemInHand();
            if(e.getClickedBlock().getType() == Material.ENDER_PORTAL_FRAME) //что бить
                {
                if(e.getPlayer().getItemInHand().getType() == Material.BOOK && item.getItemMeta().hasLore() && item.getItemMeta().getDisplayName().equals(ChatColor.RED + "" + ChatColor.BOLD + "Святая Библия")) //чем бить
                    {
                   
                 List<String> list;
                 if(data.contains("players"))
                 {
                     list = data.getStringList("players");
                 }
                 else
                 {
                     list = new ArrayList<>();
                 }
               
        if(!list.contains(e.getPlayer().getName()) && !name.containsKey(e.getPlayer().getName()))
          {
            e.getPlayer().sendMessage(ChatColor.GREEN + "Крещение стоит 250.000 франков, вы уверены?");
            e.getPlayer().sendMessage(ChatColor.GREEN + "Если вы уверены, нажмите еще раз, чтобы покреститься");
            name.put(e.getPlayer().getName(), e.getPlayer().getName());
            return;
       
         }
        else if(!list.contains(e.getPlayer().getName()) && name.containsKey(e.getPlayer().getName()))
             {
                 EconomyResponse r = econ.withdrawPlayer(e.getPlayer().getName(), 250000); //что дается
                 if(r.transactionSuccess())
                 {
                 e.getPlayer().sendTitle("§a§lВы покрестились!", "§6§lТеперь ваш статус §4§l[§a§lКрещенный§4§l]");
                 e.getPlayer().sendMessage(ChatColor.GOLD + "С вашего счета было списано " + ChatColor.RED + "250.000" + ChatColor.GOLD + " франков" );
                 e.getPlayer().getInventory().removeItem(ChurchItems.bible);
                 list.add(e.getPlayer().getName());
                 data.set("players", list);
                 saveData();
                 }
               
                 else
                 {
                     e.getPlayer().sendTitle("§4§lУ вас недостаточно денег", "§6Копите 250.000 франков и приходите");
                 }
               
             }
           
             else
             {
                 e.getPlayer().sendTitle("§4§lВы уже крестились!", "§6§lКреститься можно только 1 раз!");
             }
           
            }
           
              }
        }
    }
PHP:
public HashMap<String, String> name = new HashMap<String, String>();
Хелп, туплю сильно
 
Что за парашу ты пишешь ?
Ну по приколу шнягу пишу, попутно изучая bukkit api и java. А то что это параша, я написал еще выше. Я решил вместо хешмапа использовать arraylist, как советовали выше, но ничего не робит. Я опять накосячил. Поможешь?
PHP:
 if(!name.contains(e.getPlayer().getName()))
                 {
                     e.getPlayer().sendMessage("true");
                     name.add(e.getPlayer().getName());
                 }
                
            if(name.contains(e.getPlayer().getName()))
            {
          if(!list.contains(e.getPlayer().getName()))
             {
                 EconomyResponse r = econ.withdrawPlayer(e.getPlayer().getName(), 250000); //что дается
                 if(r.transactionSuccess())
                 {
                 e.getPlayer().sendTitle("§a§lВы покрестились!", "§6§lТеперь ваш статус §4§l[§a§lКрещенный§4§l]");
                 e.getPlayer().sendMessage(ChatColor.GOLD + "С вашего счета было списано " + ChatColor.RED + "250.000" + ChatColor.GOLD + " франков" );
                 e.getPlayer().getInventory().removeItem(ChurchItems.bible);
                 list.add(e.getPlayer().getName());
                 name.remove(e.getPlayer().getName());
                 data.set("players", list);
                 saveData();
                 }
             }
В игре жмякаю на блок, пишет true, при повторном клике ничего не происходит
 
Когда не можешь разобраться с хеш мапом... тут ток hash/weak map
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх