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

[Problem] Plugin nie działa poprawnie


Rekomendowane odpowiedzi

Opublikowano

KOD:

 

 

 
    @EventHandler
    public void onPlayerJoin(PlayerJoinEvent e) {
     if(e.getPlayer().hasPermission("blaze.gracz")){
        ItemStack item = new ItemStack(Material.BLAZE_ROD , 1);
        ItemMeta itemMeta = item.getItemMeta();
        itemMeta.setDisplayName(ChatColor.BOLD+""+ChatColor.DARK_GREEN+"Rozdzka teleportacji");
        itemMeta.setLore(Arrays.asList("Wybierz arene"));
        item.setItemMeta(itemMeta);  
        e.getPlayer().getInventory().clear();
        e.getPlayer().getInventory().addItem(item);
     }
     else
     {
        ItemStack item = new ItemStack(Material.BLAZE_ROD , 1);
        ItemMeta itemMeta = item.getItemMeta();
        itemMeta.setDisplayName(ChatColor.BOLD+""+ChatColor.DARK_GREEN+"Rozdzka teleportacji dla"+ChatColor.DARK_RED+"VIP");
        itemMeta.setLore(Arrays.asList("Wybierz arene"));
        item.setItemMeta(itemMeta);  
        e.getPlayer().getInventory().clear();
        e.getPlayer().getInventory().addItem(item);
     }
        }

//nie umieszczamy reklam w sygnaturach

Opublikowano

@HardStyl3r_PL Chodziło mi czy dodał w: 

public class Main extends JavaPlugin implements Listener //WAŻNE!
{
@Override
public void onEnable()
{
 Bukkit.getServer().getPluginMenager().registerEvents(this, this); //WAŻNE
}
}
Opublikowano

Poprawione ;-)

@EventHandler
    public void onPlayerJoin(PlayerJoinEvent e) {
    if(e.getPlayer().hasPermission("blaze.gracz")){
        ItemStack item = new ItemStack(Material.BLAZE_ROD , 1);
        ItemMeta itemMeta = item.getItemMeta();
        itemMeta.setDisplayName(ChatColor.BOLD+""+ChatColor.DARK_GREEN+"Rozdzka teleportacji");
        itemMeta.setLore(Arrays.asList("Wybierz arene"));
        item.setItemMeta(itemMeta);  
        e.getPlayer().getInventory().clear();
        e.getPlayer().getInventory().addItem(item);
    }
    else if(e,getPlayer().hasPermission("blaze.vip")){
    {
        ItemStack item = new ItemStack(Material.BLAZE_ROD , 1);
        ItemMeta itemMeta = item.getItemMeta();
        itemMeta.setDisplayName(ChatColor.BOLD+""+ChatColor.DARK_GREEN+"Rozdzka teleportacji dla"+ChatColor.DARK_RED+"VIP");
        itemMeta.setLore(Arrays.asList("Wybierz arene"));
        item.setItemMeta(itemMeta);  
        e.getPlayer().getInventory().clear();
        e.getPlayer().getInventory().addItem(item);
    }
        }

Permisja dla gracza: "blaze.gracz"

Permisja dla vipa: "blaze.vip"

 

Pozdrawiam

EX WŁAŚCICIEL MCF2F.PL

  • 2 tygodnie później...
Opublikowano


Proszę wystarczy wkleić: 
 

	public void onEnable() {
		getServer().getPluginManager().registerEvents(this, this);
	}
	
	
	@EventHandler
	public void playerDetection(PlayerJoinEvent e) {
		Player p = e.getPlayer();
		if(p.hasPermission("wand.player")){
			if(!p.getInventory().contains(new ItemStack(Material.BLAZE_ROD))){
				ItemStack item = new ItemStack(Material.BLAZE_ROD, 1);
				ItemMeta meta = item.getItemMeta();
				meta.setDisplayName(ChatColor.GOLD + "Wand");
				meta.setLore(Arrays.asList(ChatColor.GRAY + "Select the game!"));
				item.setItemMeta(meta);
				p.getInventory().addItem(item);
			}
		} else if (p.hasPermission("wand.premium")) {
			if(!p.getInventory().contains(new ItemStack(Material.BLAZE_ROD))){
				ItemStack item = new ItemStack(Material.BLAZE_ROD, 1);
				ItemMeta meta = item.getItemMeta();
				meta.setDisplayName(ChatColor.GOLD + "Wand Premium");
				meta.setLore(Arrays.asList(ChatColor.GRAY + "Select the game!"));
				item.setItemMeta(meta);
				p.getInventory().addItem(item);
			}
		}
	}
	
	@EventHandler
	public void playerDrop(PlayerDropItemEvent e){
		Player p = e.getPlayer();
		if(e.getItemDrop().getItemStack().getType().equals(Material.BLAZE_ROD)){
                        if(!p.isOp) {
		                e.setCancelled(true);
                        }
		}
	}

Permission:
- wand.gracz #dla zwykłego gracz'a
- wand.premium #dla gracz'a premium/vip
Zalety:
Jeżeli gracz ma już blaze rod to nie daje od nowa.
Zwykły gracz nie może wyrzucić blaze rod.

 


@misiekcraft

@down
Tak ponieważ to jest kod pisany w 2-3 minut.
Najlepiej dodać wykrywanie lore,id,displayname i może jakaś lista :)

@andych1
Wiem o tym, tylko po co bd pisał w osobnych klasach jak osoba która zrobiła temat nie ogarnia ;_;.
I na 80% napiszę skript na serwer i tyle będzie z kodu...

 

Opublikowano

@Lord Tytan

po 1. metoda dziedziczona "onEnable()" powinan być opatrzona adnotacją "@Override"

po 2. dawanie listenerów w klasie głównej jest nieprofesjonalne, na to powinan byc osobna klasa a linijka rejestrująca powinna powłać jej konstruktor domniemany

 

@misiekcraft

Niedopracowane, owszem, ale masz 2 rozwiązania, albo w jakiejś mapce zapamietać który to item, co jest trudne, bo musisz go śledzić, albo przy wyrzuceniu też sprawdzić displayName wyrzucanego itemka (kolejny if)

 

//Edit: Czemu w listenerze od wyrzucania nie można tych ifów połączyć koniunkcją logiczną?

Opublikowano

 

Proszę wystarczy wkleić: 

 

	public void onEnable() {
		getServer().getPluginManager().registerEvents(this, this);
	}
	
	
	@EventHandler
	public void playerDetection(PlayerJoinEvent e) {
		Player p = e.getPlayer();
		if(p.hasPermission("wand.player")){
			if(!p.getInventory().contains(new ItemStack(Material.BLAZE_ROD))){
				ItemStack item = new ItemStack(Material.BLAZE_ROD, 1);
				ItemMeta meta = item.getItemMeta();
				meta.setDisplayName(ChatColor.GOLD + "Wand");
				meta.setLore(Arrays.asList(ChatColor.GRAY + "Select the game!"));
				item.setItemMeta(meta);
				p.getInventory().addItem(item);
			}
		} else if (p.hasPermission("wand.premium")) {
			if(!p.getInventory().contains(new ItemStack(Material.BLAZE_ROD))){
				ItemStack item = new ItemStack(Material.BLAZE_ROD, 1);
				ItemMeta meta = item.getItemMeta();
				meta.setDisplayName(ChatColor.GOLD + "Wand Premium");
				meta.setLore(Arrays.asList(ChatColor.GRAY + "Select the game!"));
				item.setItemMeta(meta);
				p.getInventory().addItem(item);
			}
		}
	}
	
	@EventHandler
	public void playerDrop(PlayerDropItemEvent e){
		Player p = e.getPlayer();
		if(e.getItemDrop().getItemStack().getType().equals(Material.BLAZE_ROD)){
                        if(!p.isOp) {
		                e.setCancelled(true);
                        }
		}
	}

Permission:

- wand.gracz #dla zwykłego gracz'a

- wand.premium #dla gracz'a premium/vip

Zalety:

Jeżeli gracz ma już blaze rod to nie daje od nowa.

Zwykły gracz nie może wyrzucić blaze rod.

 

@misiekcraft

@down

Tak ponieważ to jest kod pisany w 2-3 minut.

Najlepiej dodać wykrywanie lore,id,displayname i może jakaś lista :)

 

@andych1

Wiem o tym, tylko po co bd pisał w osobnych klasach jak osoba która zrobiła temat nie ogarnia ;_;.

I na 80% napiszę skript na serwer i tyle będzie z kodu...

 

 

Dzieki dziala przedytowalem kod na swoje czyli zmiana nazwy i czesc kody jeszcze dodalem dzieki leci +

 

 

@Edit

 

 

Ale teraz jeszcze chce dodac to gdy klikne na vip to otworzy sie okno dla vip a dla gracza okno dla gracza :)

//nie umieszczamy reklam w sygnaturach

Opublikowano

Zobaczylem ze 17 odp juz ucieszony a tu kurw@ taki dzieciak sie wbil i wszystko zepsół ... Wypier@l@j nabijaczu postów !!!

//nie umieszczamy reklam w sygnaturach

Opublikowano

Dzieki dziala przedytowalem kod na swoje czyli zmiana nazwy i czesc kody jeszcze dodalem dzieki leci +

 

 

@Edit

 

 

Ale teraz jeszcze chce dodac to gdy klikne na vip to otworzy sie okno dla vip a dla gracza okno dla gracza :)

 

Z tego co widzę, wiesz jak się sprawdza czy gracz ma uprawnienie, więc w czym problem?

Opublikowano

Chodzi mi bardziej o to ze blaze rod otwiera ekwipunek gracza a stick otwiera ekwipunek vipa prosze o pomoc

//nie umieszczamy reklam w sygnaturach

Opublikowano

ale no to... robisz PlayerInteractEvent, następnie sprawdzasz jakiego itemu użyto, czy to patyk, czy blaze rod, jeśli patyk to czy ma permisje dla vipa, jesli tak, to otwiera eq, jeśli nie to wiadomośc, jeśli to blaze rod to sprawdza czy masz permisje, jesli masz to otwiera eq a jesli nei to błąd.

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...