Skocz do zawartości
  • 0

Nie dziala mi blokowanie wyjmowania itemow


Pytanie

Napisalem pewien kod. KOmenda /kit dziala, ale nie dziala juz blokowanie wyjmowania itemow.

package pl.toxicplayer.pmh1.commands;

import java.util.ArrayList;

import org.bukkit.Bukkit;
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.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;

import pl.toxicplayer.pmh1.Main;

import com.connorlinfoot.actionbarapi.ActionBarAPI;

public class Kit implements CommandExecutor, Listener{
	
	@Override
	public boolean onCommand(CommandSender sender, Command cmd, String labe, String[] args){
		
		Player p = (Player) sender;
		
		if(p instanceof Player){
			createMenuKit(p);
		}
		return false;
	}
	public void createMenuKit(Player p){
		
		for(String s : Main.getPlugin(Main.class).getConfig().getStringList("kit.gui-name")){
			
			s = s.replace('&', '§');
			
			Inventory inv = Bukkit.getServer().createInventory(null, 9, s);
			
			ItemStack gracz = new ItemStack(Material.STONE_SWORD, 1);
			ItemMeta gim = gracz.getItemMeta();
			ArrayList<String> glore = new ArrayList<String>();
			for(String sg : Main.getPlugin(Main.class).getConfig().getStringList("kit.gracz.name")){
				
				sg = sg.replace('&', '§');
				
				gim.setDisplayName(sg);
			}
			for(String sg1 : Main.getPlugin(Main.class).getConfig().getStringList("kit.gracz.lore")){
				
				sg1 = sg1.replace('&', '§');
				
				glore.add(sg1);
				gim.setLore(glore);
			}
			gracz.setItemMeta(gim);
			
			inv.setItem(0, gracz);
			
			p.openInventory(inv);
			
		}
		
	}
	@EventHandler
	public void onInvClickKit(InventoryClickEvent e){
		
		Player p = (Player) e.getWhoClicked();
		
		for(String s : Main.getPlugin(Main.class).getConfig().getStringList("kit.gui-name")){
			
			s = s.replace('&', '§');
			if(e.getInventory().getName() == s){
			
				for(String sg1 : Main.getPlugin(Main.class).getConfig().getStringList("kit.gracz.name")){
					
					sg1 = sg1.replace('&', '§');
				
					if(e.getCurrentItem().getItemMeta().getDisplayName().contains(sg1)){
					
					}
					e.setCancelled(true);
					p.closeInventory();
				}	
				
			}
			return;
			
		}
	}
}

Main:

package pl.toxicplayer.pmh1;

import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin;

import pl.toxicplayer.pmh1.commands.Kit;
import pl.toxicplayer.pmh1.commands.Pomoc;
import pl.toxicplayer.pmh1.commands.Vip;

public class Main extends JavaPlugin{
    
    @Override
    public void onEnable(){
        saveDefaultConfig();
        getCommand("pomoc").setExecutor(new Pomoc());
        getCommand("vip").setExecutor(new Vip());
        getCommand("kit").setExecutor(new Kit());
        Bukkit.getPluginManager().registerEvents(new Kit(), this);
        System.out.println("");
    }
    
    @Override
    public void onDisable(){
        System.out.println("");
    }
}
 

Odnośnik do komentarza
https://skript.pl/temat/27373-nie-dziala-mi-blokowanie-wyjmowania-itemow/
Udostępnij na innych stronach

1 odpowiedź na to pytanie

Rekomendowane odpowiedzi

  • 0

Castujesz playera do sendera nawet jezeli jest to konsola, a pozniej jeszcze sprawdzasz czy player jest playerem ;/

 

Stringow nie porownujemy poprzez == tylko equals(), i zamiast robic taka petle i sprawdzac czy string z petli == okreslony string to po prostu masz takie cos jak contains w listach.. Do tego ten replace i petla w ktorej za kazdym razem zamykasz inventory i cancelujesz event ;/

 

No i glowne co do tematu: DEBUGUJ - to bedziesz wiedzial co jest zle.

Odnośnik do komentarza
https://skript.pl/temat/27373-nie-dziala-mi-blokowanie-wyjmowania-itemow/#findComment-180803
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ę...