OverC raft
Minecrafter
.
Zuletzt bearbeitet:
public void weaponMenu(Player p) {
menu = p.getPlayer().getServer().createInventory(null, 9, "Enchant Menu - Weapons");
ItemStack istack = new ItemStack(Material.DIAMOND_SWORD);
ItemMeta istackMeta = istack.getItemMeta();
istackMeta.setDisplayName("Sharpness" + description("weapon", 1));
istack.setItemMeta(istackMeta);
ItemStack istack2 = new ItemStack(Material.SKULL_ITEM);
ItemMeta istackMeta2 = istack.getItemMeta();
istackMeta2.setDisplayName("Smite" + description("weapon", 2));
istack2.setItemMeta(istackMeta2);
ItemStack istack3 = new ItemStack(Material.SPIDER_EYE);
ItemMeta istackMeta3 = istack.getItemMeta();
istackMeta3.setDisplayName("Bane of Arthropods" + description("weapon", 3));
istack3.setItemMeta(istackMeta3);
ItemStack istack4 = new ItemStack(Material.STICK);
ItemMeta istackMeta4 = istack.getItemMeta();
istackMeta4.setDisplayName("Knockback" + description("weapon", 4));
istack4.setItemMeta(istackMeta4);
ItemStack istack5 = new ItemStack(Material.FIRE);
ItemMeta istackMeta5 = istack.getItemMeta();
istackMeta5.setDisplayName("Fire Aspect" + description("weapon", 5));
istack5.setItemMeta(istackMeta5);
ItemStack istack6 = new ItemStack(Material.GOLD_INGOT);
ItemMeta istackMeta6 = istack.getItemMeta();
istackMeta6.setDisplayName("Looting" + description("weapon", 6));
istack6.setItemMeta(istackMeta6);
menu.setItem(0, istack);
menu.setItem(1, istack2);
menu.setItem(2, istack3);
menu.setItem(3, istack4);
menu.setItem(4, istack5);
menu.setItem(5, istack6);
}
public void Inventory(InventoryClickEvent cevent) {
Player p = (Player) cevent.getWhoClicked();
switch (cevent.getInventory().getName()) {
case "Enchant Menu - Weapons":
Menu = true;
cevent.setCancelled(true);
switch (cevent.getCurrentItem().getType()) {
case DIAMOND_SWORD: enchant = Enchantment.DAMAGE_ALL; price = this.plugin.priceConfig.getDouble("Prices.Weapons.Sharpness"); level = this.plugin.levelConfig.getInt("Level.Weapons.Sharpness"); break;
case SKULL_ITEM: enchant = Enchantment.DAMAGE_UNDEAD; price = this.plugin.priceConfig.getDouble("Prices.Weapons.Smite"); level = this.plugin.levelConfig.getInt("Level.Weapons.Smite"); break;
case SPIDER_EYE: enchant = Enchantment.DAMAGE_ARTHROPODS; price = this.plugin.priceConfig.getDouble("Prices.Weapons.Bane of Arthropods"); level = this.plugin.levelConfig.getInt("Level.Weapons.Bane of Arthropods"); break;
case STICK: enchant = Enchantment.KNOCKBACK; price = this.plugin.priceConfig.getDouble("Prices.Weapons.Knockback"); level = this.plugin.levelConfig.getInt("Level.Weapons.Knockback"); break;
case FIRE: enchant = Enchantment.FIRE_ASPECT; price = this.plugin.priceConfig.getDouble("Prices.Weapons.Fire Aspect"); level = this.plugin.levelConfig.getInt("Level.Weapons.Fire Aspect"); break;
case GOLD_INGOT: enchant = Enchantment.LOOT_BONUS_MOBS; price = this.plugin.priceConfig.getDouble("Prices.Weapons.Looting"); level = this.plugin.levelConfig.getInt("Level.Weapons.Looting"); break;
default: enchant = null; price = null; level = null; Menu = true;
break;
} break;
ich schätze mal du speicherst die coins in einer hashmap bzw einer datenbank:
ich hätte hier ein codebeispiel von mir was aus einem meiner plugins entsammt (damit kann man über ein menu seine waffen enchanten):
ganz oben erstelle ich das menu, 9 bedeutet dabei die größe und der nächste paramenter definiert den namen des menüs.Code:public void weaponMenu(Player p) { menu = p.getPlayer().getServer().createInventory(null, 9, "Enchant Menu - Weapons"); ItemStack istack = new ItemStack(Material.DIAMOND_SWORD); ItemMeta istackMeta = istack.getItemMeta(); istackMeta.setDisplayName("Sharpness" + description("weapon", 1)); istack.setItemMeta(istackMeta); ItemStack istack2 = new ItemStack(Material.SKULL_ITEM); ItemMeta istackMeta2 = istack.getItemMeta(); istackMeta2.setDisplayName("Smite" + description("weapon", 2)); istack2.setItemMeta(istackMeta2); ItemStack istack3 = new ItemStack(Material.SPIDER_EYE); ItemMeta istackMeta3 = istack.getItemMeta(); istackMeta3.setDisplayName("Bane of Arthropods" + description("weapon", 3)); istack3.setItemMeta(istackMeta3); ItemStack istack4 = new ItemStack(Material.STICK); ItemMeta istackMeta4 = istack.getItemMeta(); istackMeta4.setDisplayName("Knockback" + description("weapon", 4)); istack4.setItemMeta(istackMeta4); ItemStack istack5 = new ItemStack(Material.FIRE); ItemMeta istackMeta5 = istack.getItemMeta(); istackMeta5.setDisplayName("Fire Aspect" + description("weapon", 5)); istack5.setItemMeta(istackMeta5); ItemStack istack6 = new ItemStack(Material.GOLD_INGOT); ItemMeta istackMeta6 = istack.getItemMeta(); istackMeta6.setDisplayName("Looting" + description("weapon", 6)); istack6.setItemMeta(istackMeta6); menu.setItem(0, istack); menu.setItem(1, istack2); menu.setItem(2, istack3); menu.setItem(3, istack4); menu.setItem(4, istack5); menu.setItem(5, istack6); }
danach definiere ich verschiedene Itemstacks und Itemmetas (name und icon) und setze sie am schluss an die stelle die ich möchte
dann implementiere ich in einer neuen klasse (geht auch in deiner jetzigen) einen "InventoryClickEvent Listener" in den du reinschreiben kannst, was passiert, wenn ein bestimmtes "Item" angelickt wird:
Code:public void Inventory(InventoryClickEvent cevent) { Player p = (Player) cevent.getWhoClicked(); switch (cevent.getInventory().getName()) { case "Enchant Menu - Weapons": Menu = true; cevent.setCancelled(true); switch (cevent.getCurrentItem().getType()) { case DIAMOND_SWORD: enchant = Enchantment.DAMAGE_ALL; price = this.plugin.priceConfig.getDouble("Prices.Weapons.Sharpness"); level = this.plugin.levelConfig.getInt("Level.Weapons.Sharpness"); break; case SKULL_ITEM: enchant = Enchantment.DAMAGE_UNDEAD; price = this.plugin.priceConfig.getDouble("Prices.Weapons.Smite"); level = this.plugin.levelConfig.getInt("Level.Weapons.Smite"); break; case SPIDER_EYE: enchant = Enchantment.DAMAGE_ARTHROPODS; price = this.plugin.priceConfig.getDouble("Prices.Weapons.Bane of Arthropods"); level = this.plugin.levelConfig.getInt("Level.Weapons.Bane of Arthropods"); break; case STICK: enchant = Enchantment.KNOCKBACK; price = this.plugin.priceConfig.getDouble("Prices.Weapons.Knockback"); level = this.plugin.levelConfig.getInt("Level.Weapons.Knockback"); break; case FIRE: enchant = Enchantment.FIRE_ASPECT; price = this.plugin.priceConfig.getDouble("Prices.Weapons.Fire Aspect"); level = this.plugin.levelConfig.getInt("Level.Weapons.Fire Aspect"); break; case GOLD_INGOT: enchant = Enchantment.LOOT_BONUS_MOBS; price = this.plugin.priceConfig.getDouble("Prices.Weapons.Looting"); level = this.plugin.levelConfig.getInt("Level.Weapons.Looting"); break; default: enchant = null; price = null; level = null; Menu = true; break; } break;
ich hoffe ich konnte dir helfen
gruss
schegar