The_Fiesslinger
Minecrafter
Hallo liebe Community,
Ich bin gerade am Programmieren eines Sellshop Plugin für Spigot 1.12.1.
Der Shop soll Spielern ermöglichen gefarmte Items über eine NPC GUI zu verkaufen.
Das Plugin funktioniert soweit das über einen Command die Shopseite aufgerufen und geöffnet wird. Die Items werden auch Ordnungsgemäß angezeigt. Bei dem versuch das Item zu verkaufen bekomme ich nur meine Exception finde aber den Fehler nicht. Bzw er erkennt mein Item nicht.
Hier mal ein paar Code ausschnitte.
Hier wird mein das Shopitem erstellt mit Material, Menge, short, Verkaufspreis, Stückpreis, Name
Die Shop seine mit ItemID usw ...
...
...
Falls ich was vergessen haben solle oder mehr Infos einfach bescheid geben.
Ich bedanke mich schon mal für die mühe.
Mit freundlichen Grüßen
The_Fiesslinger
Ich bin gerade am Programmieren eines Sellshop Plugin für Spigot 1.12.1.
Der Shop soll Spielern ermöglichen gefarmte Items über eine NPC GUI zu verkaufen.
Das Plugin funktioniert soweit das über einen Command die Shopseite aufgerufen und geöffnet wird. Die Items werden auch Ordnungsgemäß angezeigt. Bei dem versuch das Item zu verkaufen bekomme ich nur meine Exception finde aber den Fehler nicht. Bzw er erkennt mein Item nicht.
Hier mal ein paar Code ausschnitte.
Hier wird mein das Shopitem erstellt mit Material, Menge, short, Verkaufspreis, Stückpreis, Name
PHP:
public class ItemStacks {
private Material material;
private int amount;
private int shrt;
private float sellPrice;
private float stackPrice;
private String displayName;
private ItemStack item;
// ItemStack
public ItemStacks(Material material, int amount, short shrt, float sellPrice, float stackPrice, String displayName) {
this.material = material;
this.amount = amount;
this.shrt = shrt;
this.sellPrice = sellPrice;
this.stackPrice = stackPrice;
// ArrayList Lore
List<String> lore = new java.util.ArrayList();
lore.add(ChatColor.GREEN + "Links Klick: " + ChatColor.YELLOW + sellPrice);
lore.add(ChatColor.GREEN + "Rechts Klick: " + ChatColor.YELLOW + stackPrice);
lore.add(ChatColor.DARK_PURPLE + "Links x1 : Rechts x64");
item = new ItemStack(material, amount, (short) shrt);
ItemMeta meta = item.getItemMeta();
meta.setDisplayName(displayName);
meta.getDisplayName();
meta.setLore(lore);
item.setDurability(shrt);
item.getDurability();
item.setItemMeta(meta);
}
public int getshrt() {
return shrt;
}
public String getName() {
return displayName;
}
public int getAmount() {
return amount;
}
public float getSellPrice() {
return sellPrice;
}
public Material getMaterial() {
return material;
}
public ItemStack getItem() {
return item;
}
}
Die Shop seine mit ItemID usw ...
...
PHP:
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
Player p = (Player) sender;
if (args.length == 0) {
Shop tp = new Shop("§1Tierische Produkte", 3, plugin);
// Material.<Material>, int amount, int shrt, float sellPrice, (float) stackPrice, String Name
tp.addItem(new ItemStacks(Material.getMaterial(319), 1, (short) 0, (float) 0.75, (float) 48.0, ""));
tp.addItem(new ItemStacks(Material.getMaterial(363), 1, (short) 0, (float) 0.75, (float) 48.0, ""));
tp.addItem(new ItemStacks(Material.getMaterial(423), 1, (short) 0, (float) 0.75, (float) 48.0, ""));
tp.addItem(new ItemStacks(Material.getMaterial(365), 1, (short) 0, (float) 0.75, (float) 48.0, ""));
PHP:
// Item Verkaufen
public void sellItem(ItemStacks item, Player p) {
int amount = item.getAmount();
float price = item.getSellPrice();
ItemStack stack = new ItemStack(item.getMaterial(), amount);
ItemMeta meta = stack.getItemMeta();
if (p.getInventory().containsAtLeast(stack, amount)) {
p.getInventory().removeItem(new ItemStack[]{stack});
ShopMain.eco.depositPlayer(p, price);
p.sendMessage("§a[AdminShop] §3" + p.getDisplayName() + " wurden §6" + price + " §6Duplonen §2Gutgeschrieben!");
} else {
p.sendMessage(ChatColor.RED + "§a[AdminShop] §4Item konnte nicht verkauft werden!");
}
}
// Stack Verkaufen
// Alles Verkaufen
// Inventory Klick Event
@EventHandler
public void onClick(InventoryClickEvent e) {
Player p = (Player) e.getWhoClicked();
if (getViewers().contains(p)) {
e.setCancelled(true);
for (ItemStacks item : getItems()) {
if (e.getCurrentItem().getItemMeta().getDisplayName().equalsIgnoreCase(item.getMaterial().name())
if (e.getAction() == org.bukkit.event.inventory.InventoryAction.PICKUP_ALL) {
sellItem(item, p);
p.sendMessage("left");
break;
}
if (e.getAction() == org.bukkit.event.inventory.InventoryAction.PICKUP_HALF) {
buyItem(item, p);
p.sendMessage("right");
break;
}
}
}
}
Falls ich was vergessen haben solle oder mehr Infos einfach bescheid geben.
Ich bedanke mich schon mal für die mühe.
Mit freundlichen Grüßen
The_Fiesslinger