ENGLISH: Hi I am working on a kit pvp plugin I just do not get as far as I want when I click on the spring there a invertory opens with the kits anyone have an idea how I makelijk the kits make and invertory opener. DUTCH: hallo ik ben bezig met een kit pvp plugin alleen ik kom niet zo ver ik wil als ik op de veer klik er er een invertory opent met de kits iemand een idee hoe ik makelijk de kits maak en de invertory opener/ JAVACODE: package me.kyrelloes.DCNPVP.commands; import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; public class GeneralCommands implements CommandExecutor { @Override public boolean onCommand(CommandSender sender, Command cmd, String arg2, String[] args) { if (cmd.getName().equalsIgnoreCase("start")){ if(sender instanceof Player){ Player p = (Player) sender; //todo messagemanager maken p.getInventory().clear(); p.getInventory().setArmorContents(null); // itemstack kitselector openen ItemStack feather = new ItemStack(Material.FEATHER); ItemMeta feathermeta = feather.getItemMeta(); feathermeta.setDisplayName(ChatColor.DARK_RED + "Kit Selector!"); java.util.ArrayList<String> lore = new java.util.ArrayList<String>(); lore.add(ChatColor.STRIKETHROUGH + "------"); lore.add("Klik met je rechtermuis om te openen"); feathermeta.setLore(lore); feather.setItemMeta(feathermeta); p.getInventory().addItem(feather); //TODO teleport naa spawn } } return false; } }
kyrelloes So 1. Check if player Right clicks feather 2. Create new inventory for player 3. Add items to inventory 4. Add inventory listener
kyrelloes That doesn't matter, don't go coming here to get spoonfed code. You can easily go search Google for this.
You should also create an itemclickevent (If that isn't it its InventoryClickEvent) and check if it is that inventory (By naming the inventory and checking if the inventory has a name?), if it is then cancel that event and give them the kit I guess (You don't want them picking free stuff)
Create an PlayerInteractEvent. Check if the action is RIGHT_CLICK_BLOCK, RIGHT_CLICK_AIR, LEFT_CLICK_BLOCK, or LEFT_CLICK_AIR. You can use any of those ^. You don't need to use all. Then when you check for that, check if the item in the players hand is a feather. Preferably the feather with the correct name. Then create an Inventory using Bukkit.getServer().createInventory(); I believe. Add items into Inventory. Now create an InventoryClickEvent. Check if they click an item with the name of "Kit1", for example. Clear inventory, armor, etc. Add kit items. Send awesome message. Hope this helps a little.
i have this but it not works. javacode: package me.kyrelloes.DCN; import org.bukkit.ChatColor; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.inventory.InventoryClickEvent; public class PlayerInteract implements Listener { @EventHandler public void onClick(InventoryClickEvent e){ if(e.getInventory().getName().equalsIgnoreCase(ChatColor.DARK_RED + "DCN Kit Selector")){ if(e.getSlot() == 0){ Player p = (Player) e.getWhoClicked(); KitManager.giveBasickit(p); e.setCancelled(true); } } } }
yes javacode: package me.kyrelloes.DCN; import java.util.logging.Logger; import org.bukkit.command.Command; import org.bukkit.command.CommandExecutor; import org.bukkit.event.Listener; import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.java.JavaPlugin; public class Main extends JavaPlugin { public Logger log = Logger.getLogger("Minecraft"); @Override public void onEnable() { PluginManager pm = getServer().getPluginManager(); pm.registerEvents(new PlayerInteract(), this); pm.registerEvents(new JoinEvent(), this); pm.registerEvents(new KitManager(), this); getCommand("kit").setExecutor(new Commands()); } @Override public void onDisable() { } }