Skocz do zawartości
  • 0

Problem z kitem


Pytanie

Witam, tworze plugin na /kit, ale jak chce odebrać zestaw, to mogę sobie normalnie zabrać item który jest w gui. 

błąd z konsoli:

Spoiler

[21:00:18 ERROR]: Could not pass event InventoryClickEvent to core v1.22
org.bukkit.event.EventException: null
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:319) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:589) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:576) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at net.minecraft.server.v1_16_R1.PlayerConnection.a(PlayerConnection.java:2191) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at net.minecraft.server.v1_16_R1.PacketPlayInWindowClick.a(SourceFile:32) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at net.minecraft.server.v1_16_R1.PacketPlayInWindowClick.a(SourceFile:10) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at net.minecraft.server.v1_16_R1.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:19) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at net.minecraft.server.v1_16_R1.TickTask.run(SourceFile:18) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at net.minecraft.server.v1_16_R1.IAsyncTaskHandler.executeTask(SourceFile:144) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at net.minecraft.server.v1_16_R1.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at net.minecraft.server.v1_16_R1.IAsyncTaskHandler.executeNext(SourceFile:118) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at net.minecraft.server.v1_16_R1.MinecraftServer.aZ(MinecraftServer.java:943) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at net.minecraft.server.v1_16_R1.MinecraftServer.executeNext(MinecraftServer.java:936) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at net.minecraft.server.v1_16_R1.IAsyncTaskHandler.awaitTasks(SourceFile:127) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at net.minecraft.server.v1_16_R1.MinecraftServer.sleepForTick(MinecraftServer.java:920) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at net.minecraft.server.v1_16_R1.MinecraftServer.v(MinecraftServer.java:852) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at net.minecraft.server.v1_16_R1.MinecraftServer.lambda$0(MinecraftServer.java:164) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_291]
Caused by: java.lang.ClassCastException: org.bukkit.craftbukkit.v1_16_R1.inventory.CraftInventoryCustom cannot be cast to org.bukkit.plugin.PluginBase
    at Kity.EventsKity.onInventoryClick(EventsKity.java:26) ~[?:?]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_291]
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_291]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_291]
    at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_291]
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:315) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    ... 18 more

 

 

 

kod kit eventów (gdzie jest funkcja InventoryClickEvent

package Kity;

import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.plugin.PluginBase;

import net.md_5.bungee.api.ChatColor;
import pl.core.api.RanksAPI;
import pl.core.main.Main;

public class EventsKity implements Listener {
    
    Main plugin;
    RanksAPI ra;
    
    public EventsKity(Main M) {
        plugin = M;
    }
    
    @SuppressWarnings("static-access")
    @EventHandler
    public void onInventoryClick(InventoryClickEvent e) {
        if(!ChatColor.stripColor(((PluginBase) e.getInventory()).getName()).equalsIgnoreCase("Menu kitow"))
            return;
        Player p = (Player) e.getWhoClicked();
        e.setCancelled(true);
        
        if(e.getCurrentItem() == null || e.getCurrentItem().getType() == Material.AIR || !e.getCurrentItem().hasItemMeta()) {
            p.closeInventory();
            return;
        }
        
        switch(e.getCurrentItem().getType()) {
        case DIAMOND_SWORD:
            if(ra.hasPermission(p, plugin.getConfig().getString("vip.permission"))) {
                KitVip.vipItems(p);
                p.sendMessage(plugin.getConfig().getString("vip.recive"));
            } else {
                p.sendMessage(plugin.getConfig().getString("nopermission"));
            }
            break;
        case AIR:
            p.closeInventory();
            break;
        default:
            p.closeInventory();
            break;
        }
    }
}

Plugin jest robiony na wersje 1.16.1 spigot.

Odnośnik do komentarza
https://skript.pl/temat/48832-problem-z-kitem/
Udostępnij na innych stronach

10 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0

RankApi nie jest określony ani w konstruktorze ani nigdzie w kodzie.

Dodatkowo nwm czemu castujesz PluginBase, wywal to

Caused by: java.lang.ClassCastException: org.bukkit.craftbukkit.v1_16_R1.inventory.CraftInventoryCustom cannot be cast to org.bukkit.plugin.PluginBase

 

A po 3. to nazwę inventory w 1.16 sprawdza się za pomocą:

 if (e.getView().getTitle().equals("jakies tam inventiory")) {

}

 

Edytowane przez kerpson
Odnośnik do komentarza
https://skript.pl/temat/48832-problem-z-kitem/#findComment-304088
Udostępnij na innych stronach

  • 0
3 minuty temu, kerpson napisał:

RankApi nie jest określony ani w konstruktorze ani nigdzie w kodzie, dlatego z automatu jest nullem.

chodzi mi to, że jak odpalam gui i chce otrzymać kit poprzez kliknięcie item, który wybrałem w opengui to go mogę przesunąć oraz kitu nie dostane i występuje mi błąd w konsoli

Odnośnik do komentarza
https://skript.pl/temat/48832-problem-z-kitem/#findComment-304089
Udostępnij na innych stronach

  • 0
10 minut temu, FajnyNick5492 napisał:

chodzi mi to, że jak odpalam gui i chce otrzymać kit poprzez kliknięcie item, który wybrałem w opengui to go mogę przesunąć oraz kitu nie dostane i występuje mi błąd w konsoli

napisałem ci, sprawdź nazwę inventory za pomocą:

if (!e.getView().getTitle().equalsIgnoreCase("jakieś inventory")) {
	return;
}

 

Edytowane przez kerpson
to, że rankapi jest nullem to mogło by wywalać dalsze błędy
Odnośnik do komentarza
https://skript.pl/temat/48832-problem-z-kitem/#findComment-304090
Udostępnij na innych stronach

  • 0
6 minut temu, kerpson napisał:

napisałem ci, sprawdź nazwę inventory za pomocą:


if (!e.getView().getTiel().equalsIgnoreCase("jakieś inventory")) {
	return;
}

 

dalej to samo, mogę przesuwać item który jest w gui oraz też nie dostaje kitu.

Odnośnik do komentarza
https://skript.pl/temat/48832-problem-z-kitem/#findComment-304092
Udostępnij na innych stronach

  • 0
Teraz, kerpson napisał:

pokaż kod i blędy

błędy w konsoli:

Spoiler

[22:55:42 ERROR]: Fatal error trying to convert core v1.22:Kity/EventsKity.class
org.bukkit.plugin.AuthorNagException: No legacy enum constant for ACACIA_BOAT. Did you forget to define a modern (1.13+) api-version in your plugin.yml?
    at org.bukkit.craftbukkit.v1_16_R1.util.Commodore$1$1.visitFieldInsn(Commodore.java:200) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at org.bukkit.craftbukkit.libs.org.objectweb.asm.ClassReader.readCode(ClassReader.java:2415) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at org.bukkit.craftbukkit.libs.org.objectweb.asm.ClassReader.readMethod(ClassReader.java:1488) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at org.bukkit.craftbukkit.libs.org.objectweb.asm.ClassReader.accept(ClassReader.java:718) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at org.bukkit.craftbukkit.libs.org.objectweb.asm.ClassReader.accept(ClassReader.java:401) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at org.bukkit.craftbukkit.v1_16_R1.util.Commodore.convert(Commodore.java:131) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at org.bukkit.craftbukkit.v1_16_R1.util.CraftMagicNumbers.processClass(CraftMagicNumbers.java:298) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:140) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at org.bukkit.plugin.java.JavaPluginLoader.getClassByName(JavaPluginLoader.java:202) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:107) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:96) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_291]
    at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_291]
    at pl.core.main.Main.onEnable(Main.java:83) ~[?:?]
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:351) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:480) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at org.bukkit.craftbukkit.v1_16_R1.CraftServer.enablePlugin(CraftServer.java:491) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at org.bukkit.craftbukkit.v1_16_R1.CraftServer.enablePlugins(CraftServer.java:405) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at net.minecraft.server.v1_16_R1.MinecraftServer.loadWorld(MinecraftServer.java:438) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at net.minecraft.server.v1_16_R1.DedicatedServer.init(DedicatedServer.java:219) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at net.minecraft.server.v1_16_R1.MinecraftServer.v(MinecraftServer.java:810) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at net.minecraft.server.v1_16_R1.MinecraftServer.lambda$0(MinecraftServer.java:164) ~[spigot-1.16.1.jar:git-Spigot-0287a20-7560f5f]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_291]

kod OpenGUI:

Spoiler

package Kity;

import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;

public class OpenGUI {
    
    public static void OpenGUI(Player p) {
        Inventory i = Bukkit.createInventory(null, 27, "§8Menu Kitow");
        
        ItemStack Blank = new ItemStack(Material.AIR);
        ItemMeta BlankM = Blank.getItemMeta();
        
        Blank.setItemMeta(BlankM);
        
        ItemStack Vip = KitVip.vip();
        
        i.setItem(0, Blank);
        i.setItem(1, Blank);
        i.setItem(2, Blank);
        i.setItem(3, Blank);
        i.setItem(4, Blank);
        i.setItem(5, Blank);
        i.setItem(6, Blank);
        i.setItem(7, Blank);
        i.setItem(8, Blank);
        i.setItem(9, Blank);
        i.setItem(10, Blank);
        i.setItem(11, Blank);
        i.setItem(12, Blank);
        i.setItem(13, Vip);
        i.setItem(14, Blank);
        i.setItem(15, Blank);
        i.setItem(16, Blank);
        i.setItem(17, Blank);
        i.setItem(18, Blank);
        i.setItem(19, Blank);
        i.setItem(20, Blank);
        i.setItem(21, Blank);
        i.setItem(22, Blank);
        i.setItem(23, Blank);
        i.setItem(24, Blank);
        i.setItem(25, Blank);
        i.setItem(26, Blank);
        
        p.openInventory(i);
    }
}
 

Kod KitVip:

Spoiler

package Kity;

import java.util.ArrayList;
import java.util.List;

import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;

import net.md_5.bungee.api.ChatColor;
import pl.core.main.Main;

public class KitVip {
    
    static Main plugin;

    public KitVip(Main M) {
        plugin = M;
    }
    
    public static ItemStack vip() {
        ItemStack Vip = new ItemStack(Material.DIAMOND_SWORD);
        ItemMeta VipM = Vip.getItemMeta();
        
        VipM.setDisplayName(ChatColor.translateAlternateColorCodes('&', plugin.getConfig().getString("vip.name")));
        ArrayList<String> lore = new ArrayList<String>();
        
        List<String> VipList = plugin.getConfig().getStringList("vip.lore");
        
        for(String a : VipList) {
            lore.add(ChatColor.translateAlternateColorCodes('&', a));
        }
        
        VipM.setLore(lore);
        Vip.setItemMeta(VipM);
        
        return Vip;
    }
    
    public static void vipItems(Player p) {
        ItemStack kilof = new ItemStack(Material.STONE_PICKAXE, 1);
        ItemMeta kilofM = kilof.getItemMeta();
        
        kilofM.addEnchant(Enchantment.SILK_TOUCH, 1, true);
        
        ((ItemStack) kilofM).setItemMeta(kilofM);
        
        p.getInventory().addItem(new ItemStack(kilof));
    }
    
}
 

Sama komenda:

Spoiler

package pl.core.cmds;

import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

import Kity.OpenGUI;
import pl.core.main.Main;

public class Kity implements CommandExecutor {
    
    Main plugin;
    
    public Kity(Main M) {
        plugin = M;
        M.getCommand("kit").setExecutor(this);
    }

    @Override
    public boolean onCommand(CommandSender sender, Command cmd, String lab, String[] args) {
        Player p = (Player) sender;
        OpenGUI.OpenGUI(p);
        return false;
    }
}

 

Odnośnik do komentarza
https://skript.pl/temat/48832-problem-z-kitem/#findComment-304095
Udostępnij na innych stronach

Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...