Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Inventory się nie otwiera - problem z napisaniem pluginu.


Czaromirus

Rekomendowane odpowiedzi

Opublikowano

Mam problem z pisaniem pluginu. Po kliknięciu na Gwiazdkę Netherową zamias otwarcia inventory wywala błąd w konsoli (zdj.1).

Kod z klasy Inver:

 

@EventHandler
    public void onInteract(PlayerInteractEvent e){
        if(e.getPlayer().getItemInHand() !=null && e.getPlayer().getItemInHand().getType().equals(Material.NETHER_STAR) 
            && e.getPlayer().getItemInHand().getItemMeta().hasDisplayName() 
            && e.getPlayer().getItemInHand().getItemMeta().getDisplayName().equals(compass.getItemMeta().getDisplayName())){
       e.getPlayer().openInventory(invx); //(LINIJKA 76)
    }
}

 

 

 

post-1381109-0-81660800-1447607473_thumb.jpg

Opublikowano

Po1.

Dlaczego sprawdzasz czy owy item ma ogólnie nazwę skoro za chwilę upewniasz się że item ma nazwę równą compass.getItemMeta().getDisplayName())

 

Po2.

Nie pokazujesz kodu który odpowiada za zawartosć inventory

tumblr_mvmbjq2EGs1s3ulybo1_500.gif

Jeśli to czytasz, znaczy to że się opierdalasz :)

Opublikowano

@Matrzak Cały kod klasy Inver:

 

public class Inver implements Listener{
static Inventory invx;
public static void xl(){
invx = Bukkit.createInventory(null, 9, "§5§lWybor klas");{
invx.setItem(0, blank);
invx.setItem(1, blank);
invx.setItem(2, x);
invx.setItem(3, xx);
invx.setItem(4, xxx);
invx.setItem(5, xxxx);
invx.setItem(6, xxxxx);
invx.setItem(7, blank);
invx.setItem(8, blank);
}
}
 
public static ItemStack compass = new ItemStack(Material.NETHER_STAR, 1);{
ItemMeta im = compass.getItemMeta();
im.setDisplayName("§c§lSelect Class");
compass.setItemMeta(im);
}
 
static ItemStack x = new ItemStack(Material.DIAMOND_SWORD, 1);{
ItemMeta im = x.getItemMeta();
im.setDisplayName("§a§lKlasa 1");
x.setItemMeta(im);
}
 
static ItemStack xx = new ItemStack(Material.NETHERRACK, 1);{
ItemMeta im = xx.getItemMeta();
im.setDisplayName("§4§lKlasa 2");
xx.setItemMeta(im);
}
 
static ItemStack xxx = new ItemStack(Material.ENDER_STONE, 1);{
ItemMeta im = xxx.getItemMeta();
im.setDisplayName("§9§lKlasa 3");
xxx.setItemMeta(im);
}
static ItemStack xxxx = new ItemStack(Material.DIRT, 1);{
ItemMeta im = xxxx.getItemMeta();
im.setDisplayName("§9§lKlasa 4");
xxxx.setItemMeta(im);
}
static ItemStack xxxxx = new ItemStack(Material.STONE, 1);{
ItemMeta im = xxxxx.getItemMeta();
im.setDisplayName("§9§lKlasa 5");
xxxxx.setItemMeta(im);
}
 
static ItemStack blank = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 8);{
ItemMeta im = blank.getItemMeta();
im.setDisplayName(" ");
blank.setItemMeta(im);
}
@EventHandler
public void onInteract(PlayerInteractEvent e){
if(e.getPlayer().getItemInHand() !=null && e.getPlayer().getItemInHand().getType().equals(Material.NETHER_STAR)  
&& e.getPlayer().getItemInHand().getItemMeta().getDisplayName().equals(compass.getItemMeta().getDisplayName())){
e.getPlayer().openInventory(invx);
}
}
public static void classSllect(Player p){
p.openInventory(invx);
}
@SuppressWarnings("deprecation")
@EventHandler
public void onClick(InventoryClickEvent e){
Inventory i = e.getInventory();
if(i == null){
return;
}
if(i !=null){
if(!i.getName().equals(invx.getTitle())){
return;
}
if (e.getCurrentItem() == null){
return;
}
else{
if(e.getCurrentItem().getItemMeta() == null){
return;
}
}
}
if(e.getWhoClicked() instanceof Player){
Player p = (Player) e.getWhoClicked();
if(e.getCurrentItem().getItemMeta() !=null){
if(e.getCurrentItem().getItemMeta().getDisplayName().equals(x.getItemMeta().getDisplayName())){
e.setCancelled(true);
if(Main.getInst().getConfig().get("Status." + p.getName() + ".odblokowane." + "Klasa1").equals("TAK")){
//
Method.setClassx(p.getName(), "Standard"); 
Main.getInst().getConfig().set("Status." + ((OfflinePlayer) e).getPlayer().getName() + ".wybrana", "Standard");
//
} else{
p.sendMessage("§4Nie masz tej klasy zakupionej !");
}
e.setCursor(new ItemStack(Material.AIR, 1));
p.updateInventory();
}
if(e.getCurrentItem().getItemMeta().getDisplayName().equals(xx.getItemMeta().getDisplayName())){
e.setCancelled(true);
if(Main.getInst().getConfig().get("Status." + p.getName() + ".odblokowane." + "Klasa2").equals("TAK")){
//
Method.setClassx(p.getName(), "Killer"); 
Main.getInst().getConfig().set("Status." + ((OfflinePlayer) e).getPlayer().getName() + ".wybrana", "Killer");
//
} else{
p.sendMessage("§4Nie masz tej klasy zakupionej !");
}
e.setCursor(new ItemStack(Material.AIR, 1));
p.updateInventory();
}
if(e.getCurrentItem().getItemMeta().getDisplayName().equals(xxx.getItemMeta().getDisplayName())){
e.setCancelled(true);
if(Main.getInst().getConfig().get("Status." + p.getName() + ".odblokowane." + "Klasa3").equals("TAK")){
//
Method.setClassx(p.getName(), "Gladiator"); 
Main.getInst().getConfig().set("Status." + ((OfflinePlayer) e).getPlayer().getName() + ".wybrana", "Gladiato");
//
} else{
p.sendMessage("§4Nie masz tej klasy zakupionej !");
}
e.setCursor(new ItemStack(Material.AIR, 1));
p.updateInventory();
}
if(e.getCurrentItem().getItemMeta().getDisplayName().equals(xxxx.getItemMeta().getDisplayName())){
e.setCancelled(true);
if(Main.getInst().getConfig().get("Status." + p.getName() + ".odblokowane." + "Klasa4").equals("TAK")){
//
Method.setClassx(p.getName(), "Lucznik"); 
Main.getInst().getConfig().set("Status." + ((OfflinePlayer) e).getPlayer().getName() + ".wybrana", "Lucznik");
//
} else{
p.sendMessage("§4Nie masz tej klasy zakupionej !");
}
e.setCursor(new ItemStack(Material.AIR, 1));
p.updateInventory();
}
if(e.getCurrentItem().getItemMeta().getDisplayName().equals(xxxxx.getItemMeta().getDisplayName())){
e.setCancelled(true);
if(Main.getInst().getConfig().get("Status." + p.getName() + ".odblokowane." + "Klasa5").equals("TAK")){
//
Method.setClassx(p.getName(), "xXx"); 
Main.getInst().getConfig().set("Status." + ((OfflinePlayer) e).getPlayer().getName() + ".wybrana", "xXx");
//
} else{
p.sendMessage("§4Nie masz tej klasy zakupionej !");
}
e.setCursor(new ItemStack(Material.AIR, 1));
p.updateInventory();
}
}
}
}
}

 

 

Opublikowano

Na początku powiem Ci radę.. Nazywaj klasy tak, by ktoś kto dostanie kod po Tobie mógł zrozumieć co w niej się znajduje.. NP: PlayerInteractListener

I nie mów jak 90% dzieci na tym forum, że kod jest dla Ciebie i bla bla bla. Od początku ucz się tak, żeby w przyszłości ,,weszło" Ci to w nawyk..

 

A co do error'a z tego co widzę na telefonie to porąbałeś importy. XDD

 

@Edit

Tak teraz patrze na to jeszcze bo taptalk załapał laga to w inventory te xxx, blank etc odnoszą się w ogóle do czegoś o.O?

Napisz na PW to około 20 jak będę w domu a jeszcze tego nie naprawisz to Ci pomogę.

784091427630431250239.png

Regulamin sygnatur

Opublikowano

@OldisPL Wszystkie importy powinny być dobre. A co do tych x to tak:

 

static ItemStack x = new ItemStack(Material.DIAMOND_SWORD, 1);{
ItemMeta im = x.getItemMeta();
im.setDisplayName("§a§lKlasa 1");
x.setItemMeta(im);
}
 
static ItemStack xx = new ItemStack(Material.NETHERRACK, 1);{
ItemMeta im = xx.getItemMeta();
im.setDisplayName("§4§lKlasa 2");
xx.setItemMeta(im);
}
 
static ItemStack xxx = new ItemStack(Material.ENDER_STONE, 1);{
ItemMeta im = xxx.getItemMeta();
im.setDisplayName("§9§lKlasa 3");
xxx.setItemMeta(im);
}
static ItemStack xxxx = new ItemStack(Material.DIRT, 1);{
ItemMeta im = xxxx.getItemMeta();
im.setDisplayName("§9§lKlasa 4");
xxxx.setItemMeta(im);
}
static ItemStack xxxxx = new ItemStack(Material.STONE, 1);{
ItemMeta im = xxxxx.getItemMeta();
im.setDisplayName("§9§lKlasa 5");
xxxxx.setItemMeta(im);
}
 

 

 

Opublikowano

@OldisPL  Proszę, oto wszystkie importy z klasy Inver:

 

import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;

 

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...