[РЕШЕНО]Не работает HashMap, хотя всё вроде правильно

Статус
Закрыто для дальнейших ответов.

thematdev

Активный участник
Пользователь
Баллы
46
Имя в Minecraft
thematdev
Так вот, я писал плагин на киты, всё довольно таки работает, пермишионы сам настрою, но меня до сих пор мучает одна проблема как сделать так чтобы игрок мог брать кит раз в день, а не тупо бесконечно кликать. Исходник одного кита так уж и быть спалю:
fc224c2daa824128b16f6eaabe62cd9e.png

Вопрос что нужно дописать в if(условие) и что нужно дописать в if(действие)?
Заранее благодарен за помощь!
Ну так вот теперь не работает HashMap

PHP:
package gUIMenu;

import java.util.HashMap;

import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.event.EventHandler;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.*********ventory.Inventory;
import org.*********ventory.ItemStack;

import gUIMenu.utils.ItemUtil;

public class GUI implements Listener {
    static HashMap<Player, Long> playermap = new HashMap<Player, Long>();
   
    public static void openKitGUI(Player p) {
        Inventory inv = Bukkit.createInventory(null, 9, "Выбор кита");
        inv.setItem(0, ItemUtil.create(Material.LEATHER_HELMET, ChatColor.translateAlternateColorCodes('&', "&7Кит пользователя")));
        inv.setItem(1, ItemUtil.create(Material.IRON_HELMET, ChatColor.translateAlternateColorCodes('&', "&fКит IRON")));
        inv.setItem(2, ItemUtil.create(Material.GLOWSTONE, ChatColor.translateAlternateColorCodes('&', "&2Кит VIP")));
        inv.setItem(3, ItemUtil.create(Material.REDSTONE, ChatColor.translateAlternateColorCodes('&', "&8Кит VIP+")));
        inv.setItem(4, ItemUtil.create(Material.GOLD_CHESTPLATE, ChatColor.translateAlternateColorCodes('&', "&eКит GOLD")));
        inv.setItem(5, ItemUtil.create(Material.DIAMOND_SWORD, ChatColor.translateAlternateColorCodes('&', "&bКит DIAMOND")));
        inv.setItem(6, ItemUtil.create(Material.GOLD_BLOCK, ChatColor.translateAlternateColorCodes('&', "&6&lКит SPONSOR")));
        inv.setItem(8, ItemUtil.create(Material.WOOD_DOOR, ChatColor.translateAlternateColorCodes('&', "&4Выход")));
       
        p.openInventory(inv);
       
    }
    @EventHandler
    public static void OnInventoryClick (InventoryClickEvent e) {
        long currenttime = System.currentTimeMillis();
        long lasttime = 0;
        Player p = (Player) e.getWhoClicked();
       
        if (e.getInventory().getName().equalsIgnoreCase("Выбор кита")) {
            e.setCancelled(true);
           
           
            if (e.getCurrentItem().getType() == Material.WOOD_DOOR) {
                p.closeInventory();
            }
           
                else if (e.getCurrentItem().getType() == Material.LEATHER_HELMET) {
                    if (playermap.containsKey(p)) {
                        playermap.put(p, currenttime - 87600000);
                    } else {
                        lasttime = playermap.get(p);
                    }
                    if (currenttime - lasttime >= 87600000) {
                        p.getInventory().setHelmet(new ItemStack(Material.LEATHER_HELMET));
                        p.getInventory().setChestplate(new ItemStack(Material.LEATHER_CHESTPLATE));
                        p.getInventory().setLeggings(new ItemStack(Material.LEATHER_LEGGINGS));
                        p.getInventory().setBoots(new ItemStack(Material.LEATHER_BOOTS));
                        p.getInventory().addItem(new ItemStack(Material.WOOD_SWORD));
                        p.getInventory().addItem(new ItemStack(Material.COBBLESTONE, 64));
                        p.getInventory().addItem(new ItemStack(Material.LAVA_BUCKET));
                        p.getInventory().addItem(new ItemStack(Material.WATER_BUCKET));
                       
                        p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&2Поздравляем Вы получили набор &7&lОБЫЧНОГО ПОЛЬЗОВАТЕЛЯ&2!"));
                    }
                    else {
                        p.sendMessage(ChatColor.RED + "Вы уже получали кит ОБЫЧНОГО ПОЛЬЗОВАТЕЛЯ сегодня!");
                    }
                    /*
                    p.getInventory().setHelmet(new ItemStack(Material.LEATHER_HELMET));
                    p.getInventory().setChestplate(new ItemStack(Material.LEATHER_CHESTPLATE));
                    p.getInventory().setLeggings(new ItemStack(Material.LEATHER_LEGGINGS));
                    p.getInventory().setBoots(new ItemStack(Material.LEATHER_BOOTS));
                    p.getInventory().addItem(new ItemStack(Material.WOOD_SWORD));
                    p.getInventory().addItem(new ItemStack(Material.COBBLESTONE, 64));
                    p.getInventory().addItem(new ItemStack(Material.LAVA_BUCKET));
                    p.getInventory().addItem(new ItemStack(Material.WATER_BUCKET));
                   
                    p.sendMessage(ChatColor.translateAlternateColorCodes('&', "&2Поздравляем Вы получили набор &7&lОБЫЧНОГО ПОЛЬЗОВАТЕЛЯ&2!"));
                    */
                }
//Тут костыли и анархия(другие киты) и поэтому в них пока нет хэшмэпа, они работают и не мешают(хоть и бесконечные)

[17:08:30] [Server thread/ERROR]: Could not pass event InventoryClickEvent to GUIMenu v1.0
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:305) ~[Spigot.jar:git-Spigot-8a983f9-e81edfc]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[Spigot.jar:git-Spigot-8a983f9-e81edfc]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [Spigot.jar:git-Spigot-8a983f9-e81edfc]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [Spigot.jar:git-Spigot-8a983f9-e81edfc]
at net.minecraft.server.v1_8_R1.PlayerConnection.a(PlayerConnection.java:1588) [Spigot.jar:git-Spigot-8a983f9-e81edfc]
at net.minecraft.server.v1_8_R1.PacketPlayInWindowClick.a(SourceFile:31) [Spigot.jar:git-Spigot-8a983f9-e81edfc]
at net.minecraft.server.v1_8_R1.PacketPlayInWindowClick.a(SourceFile:9) [Spigot.jar:git-Spigot-8a983f9-e81edfc]
at net.minecraft.server.v1_8_R1.PacketHandleTask.run(SourceFile:13) [Spigot.jar:git-Spigot-8a983f9-e81edfc]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_141]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_141]
at net.minecraft.server.v1_8_R1.MinecraftServer.z(MinecraftServer.java:696) [Spigot.jar:git-Spigot-8a983f9-e81edfc]
at net.minecraft.server.v1_8_R1.DedicatedServer.z(DedicatedServer.java:316) [Spigot.jar:git-Spigot-8a983f9-e81edfc]
at net.minecraft.server.v1_8_R1.MinecraftServer.y(MinecraftServer.java:634) [Spigot.jar:git-Spigot-8a983f9-e81edfc]
at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:537) [Spigot.jar:git-Spigot-8a983f9-e81edfc]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_141]
Caused by: java.lang.NullPointerException
at gUIMenu.GUI.OnInventoryClick(GUI.java:52) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_141]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_141]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_141]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_141]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:301) ~[Spigot.jar:git-Spigot-8a983f9-e81edfc]
... 14 more
Буду очень благодарен тому, кто поможет. Заранее спасибо :3
 
Последнее редактирование:
После чего перезагружаем сервер, и вся наша ценная информация пропадает 👍
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх