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] Błedy w konsoli podczas niespełnienia warunku w PlayerMoveEvent


Rekomendowane odpowiedzi

Opublikowano

Witam, chciałem napisać prosty plugin, gdy mamy założone buty iron o jakiejś nazwie to daje nam efekt trucizny, wszystko jest spoko lecz do momentu gdy gracz ma na sobie buty, jeżeli nie ma ich wywala błędy.

Kod:

http://pastebin.com/9HvX6WAZ

W eclips 0 błędów.

@off Topic

Jaki event jest na "znajdowanie itemków" to znaczy dałem "PlayerMoveEvent" ale co tu może jeszcze być aby nie zawsze szukało tego gdy chodzimy. No bo pewnie to przy większej ilości graczy będzie strasznie lagować, ale tak jak wspominałem "prosty plugin" i uczę się dopiero :)

Opublikowano

No fakt... zapomniałem :)

[00:36:14] [Server thread/ERROR]: Could not pass event PlayerMoveEvent to ItemsPlus v0.1
org.bukkit.event.EventException
	at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:481) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:466) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java:227) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.PacketPlayInFlying.a(SourceFile:137) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.PacketPlayInLook.handle(SourceFile:98) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:655) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:250) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:545) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:457) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
Caused by: java.lang.NullPointerException
	at me.ivanowski.itemsplus.Interact.PlayerInteract(Interact.java:19) ~[?:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_25]
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_25]
	at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	... 13 more
[00:36:14] [Server thread/ERROR]: Could not pass event PlayerMoveEvent to ItemsPlus v0.1
org.bukkit.event.EventException
	at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:481) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:466) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java:227) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.PacketPlayInFlying.a(SourceFile:137) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.PacketPlayInFlying.handle(SourceFile:8) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:655) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:250) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:545) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:457) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
Caused by: java.lang.NullPointerException
	at me.ivanowski.itemsplus.Interact.PlayerInteract(Interact.java:19) ~[?:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_25]
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_25]
	at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	... 13 more

Opublikowano

 

No fakt... zapomniałem :)

[00:36:14] [Server thread/ERROR]: Could not pass event PlayerMoveEvent to ItemsPlus v0.1
org.bukkit.event.EventException
	at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:481) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:466) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java:227) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.PacketPlayInFlying.a(SourceFile:137) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.PacketPlayInLook.handle(SourceFile:98) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:655) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:250) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:545) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:457) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
Caused by: java.lang.NullPointerException
	at me.ivanowski.itemsplus.Interact.PlayerInteract(Interact.java:19) ~[?:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_25]
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_25]
	at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	... 13 more
[00:36:14] [Server thread/ERROR]: Could not pass event PlayerMoveEvent to ItemsPlus v0.1
org.bukkit.event.EventException
	at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:481) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:466) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java:227) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.PacketPlayInFlying.a(SourceFile:137) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.PacketPlayInFlying.handle(SourceFile:8) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:655) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:250) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:545) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:457) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
Caused by: java.lang.NullPointerException
	at me.ivanowski.itemsplus.Interact.PlayerInteract(Interact.java:19) ~[?:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_25]
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_25]
	at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_25]
	at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.2-b2974jnks]
	... 13 more

 

NullPointerException. Próbujesz zrobić coś z czymś co nie istnieje - jest nullem.

 

Zrób tak:

package me.ivanowski.itemsplus;
 
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
 
 
public class Interact implements Listener {
    private Main plugin;
    
    public Interact(Main instance) {
        plugin = instance;
    }
     
    @EventHandler
    public void MovePlayer(PlayerMoveEvent e) {
        Player p = (Player) e.getPlayer();
        try {
            if (p.hasPermission("itemsplus.nazwa.uzycie") && p.getInventory().getBoots().getItemMeta().getDisplayName().equals("§l§Nazwa")) {
                p.addPotionEffect(new PotionEffect(PotionEffectType.POISON,1000, 1, true));
            }
        } catch (NullPointerException ex) {}
    }
}

 

9384114192053001309657.png

 

Witaj użytkowniku, chciałbym zaprosić cię na forum RPGCity.pl

Myślisz że znasz się na rzeczy? Zarejestruj się.

Już wkrótce REKRUTACJA na Moderatorów działu

---> RPGCity.pl <---

---> RPGCity.pl Rejestracja <---

 

 

 

Zapraszamy !

Zarejestruj się już dziś!

 

 

Ogarnij d*** i przestań spamować...

Dlaczego MPC popiera piractwo Minecrafta...

 

Do moderatora: Po co Ty to usuwasz??

Opublikowano

Faktycznie, zle zamieniłem nazwę itemku :) Możesz jeszcze mi powiedzieć czy jest to dobry sposób na dodawanie efektów gdy mamy coś na sobie? Bo przypuszczam, że gdy wejdzie więcej graczy i serwer będzie wszystkich sprawdzał przy każdym ruchu to może wybuchnąć :) Ale z drugiej strony jest to Listener, więc nie wiem :). Tak by było przynajmniej w innym języku.

Opublikowano

Faktycznie, zle zamieniłem nazwę itemku :) Możesz jeszcze mi powiedzieć czy jest to dobry sposób na dodawanie efektów gdy mamy coś na sobie? Bo przypuszczam, że gdy wejdzie więcej graczy i serwer będzie wszystkich sprawdzał przy każdym ruchu to może wybuchnąć :) Ale z drugiej strony jest to Listener, więc nie wiem :). Tak by było przynajmniej w innym języku.

 

Ja bym raczej polecał Ci to zrobić w tasku. Nawet task który działa co 1 sekundę (i tak to jest często) jest 20 krotną ulgą dla serwera, niż PlayerMoveEvent (który wykonuje się co każdy tick, nawet przy ruchu myszki gracza).

Dlaczego MPC popiera piractwo Minecrafta...

 

Do moderatora: Po co Ty to usuwasz??

Opublikowano

Kurcze nie mogę sobie poradzić z tym Taskiem, możesz mi zrobić / podać jakiś przykład z wytłumaczeniem wszystkiego ?

Próbowałem z bukkit nie działa, no nic nie działa...

Byłbym bardzo wdzięczny :).

Oczywiście lajki za pomoc.

Opublikowano
long delay = 20L // Update co sekundę - jak chcesz inaczej to zrób "5 * 20L" - będzie to co 5 sekund.
Bukkit.getScheduler().runTaskTimer(this.plugin, new Runnable() {
    @Override
    public void run() {
        // To co ma się wykonać w tym tasku
        // Dla przykładu sprawdzanie butów u wszystkich graczy
        for (Player player : Bukkit.getOnlinePlayers()) {
            try {
                if (p.hasPermission("itemsplus.nazwa.uzycie") && p.getInventory().getBoots().getItemMeta().getDisplayName().equals("§l§Nazwa")) {
                    p.addPotionEffect(new PotionEffect(PotionEffectType.POISON,1000, 1, true));
                }
            } catch (NullPointerException ex) {}
        }
    }
}, delay, delay);

Jak chcesz napisać jakiś większy licznik - na przykład auto wiadomości na serwerze (a'la AutoMessage) to lepiej stworzyć nową klasę która będzie implementacją Runnable

public class MyTask implements Runnable() {
    @Override
    public void run() {
        // task
    }
}

Oczywiście wtedy konstruktory tworzysz jak chcesz :P To jest zwykła klasa z metodą run ;)

Dlaczego MPC popiera piractwo Minecrafta...

 

Do moderatora: Po co Ty to usuwasz??

Opublikowano

@TheMolkaPL Kurczę wszystko za mnie napisałeś [Jakby nie patrzeć], ale to już ostatnie :)

Możesz mi podać jak nazywa się to

for( : ){}

Znaczy bo wiem ze for z 3 argumentami

for(int i =1; i == 2;i++){} - pętla

ale z dwoma nie wiem i wg. tego nie rozumiem. Jak to się nazywa? Próbowałem szukać pętli ale nikt tego nie tłumaczy a na wszystkich stronach są 3 argumenty :)

Opublikowano

@TheMolkaPL Kurczę wszystko za mnie napisałeś [Jakby nie patrzeć], ale to już ostatnie :)

Możesz mi podać jak nazywa się to

for( : ){}

Znaczy bo wiem ze for z 3 argumentami

for(int i =1; i == 2;i++){} - pętla

ale z dwoma nie wiem i wg. tego nie rozumiem. Jak to się nazywa? Próbowałem szukać pętli ale nikt tego nie tłumaczy a na wszystkich stronach są 3 argumenty :)

 

for each:

for (Object o : arr)

for loop:

for (int i = 0; i < arr.length, i++)

Dlaczego MPC popiera piractwo Minecrafta...

 

Do moderatora: Po co Ty to usuwasz??

Opublikowano

@TheMolka

... Nie rób tego w try/catch, nie od tego on jest, błędów należy unikać, a nie łapać i ignorować...

ItemStack item = p.getInventory().getBoots();
if (item == null)
{
   return;
}
ItemMeta meta = item.getItemMeta();
if (meta == null || !meta.hasDisplayName())
{
   return;
}
if (meta.getDisplayName().equals("cos tam"))
{
    // kod
}

1438614356923701010629.png

 

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...