- Баллы
- 46
- Имя в Minecraft
- thematdev
Так вот, я писал плагин на киты, всё довольно таки работает, пермишионы сам настрою, но меня до сих пор мучает одна проблема как сделать так чтобы игрок мог брать кит раз в день, а не тупо бесконечно кликать. Исходник одного кита так уж и быть спалю:
Вопрос что нужно дописать в if(условие) и что нужно дописать в if(действие)?
Заранее благодарен за помощь!
Вопрос что нужно дописать в if(условие) и что нужно дописать в if(действие)?
Заранее благодарен за помощь!
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
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
Последнее редактирование: