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] Z pluginem na AntyBot (naprawi ktos kod)


Rekomendowane odpowiedzi

Opublikowano

Elo! Poprawi ktos mi ten kod bo nie działa on, (Prosze o pomoc)

 

Kod:

 

package me.Zientez;
 
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.Plugin;
 
public class AntyBot implements Listener {
 
 
private Plugin Main;
 
@EventHandler
public void onJoin(final PlayerJoinEvent e) {
Player p = e.getPlayer();
if(!p.hasPlayedBefore()) {
Bukkit.getScheduler().runTaskLater(Main, new Runnable() {
 
@Override
public void run() {
e.getPlayer().kickPlayer("§7[§aSERWER§7] §aWejdz ponownie na serwer!");
 
}
        }, 3L);
 
}
}
}

LOGI:

[18:30:13 ERROR]: Could not pass event PlayerJoinEvent to AntyBot v1.0
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[mc.jar:git-Spigot-1611]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[mc.jar:git-Spigot-1611]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [mc.jar:git-Spigot-1611]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [mc.jar:git-Spigot-1611]
at net.minecraft.server.v1_7_R4.PlayerList.c(PlayerList.java:265) [mc.jar:git-Spigot-1611]
at net.minecraft.server.v1_7_R4.PlayerList.a(PlayerList.java:152) [mc.jar:git-Spigot-1611]
at net.minecraft.server.v1_7_R4.LoginListener.c(LoginListener.java:105) [mc.jar:git-Spigot-1611]
at net.minecraft.server.v1_7_R4.LoginListener.a(LoginListener.java:43) [mc.jar:git-Spigot-1611]
at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:187) [mc.jar:git-Spigot-1611]
at net.minecraft.server.v1_7_R4.ServerConnection.c(ServerConnection.java:81) [mc.jar:git-Spigot-1611]
at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:734) [mc.jar:git-Spigot-1611]
at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [mc.jar:git-Spigot-1611]
at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [mc.jar:git-Spigot-1611]
at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [mc.jar:git-Spigot-1611]
at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [mc.jar:git-Spigot-1611]
Caused by: java.lang.IllegalArgumentException: Plugin cannot be null
at org.apache.commons.lang.Validate.notNull(Validate.java:192) ~[mc.jar:git-Spigot-1611]
at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftScheduler.validate(CraftScheduler.java:397) ~[mc.jar:git-Spigot-1611]
at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftScheduler.runTaskTimer(CraftScheduler.java:123) ~[mc.jar:git-Spigot-1611]
at org.bukkit.craftbukkit.v1_7_R4.scheduler.CraftScheduler.runTaskLater(CraftScheduler.java:106) ~[mc.jar:git-Spigot-1611]
at me.Zientez.AntyBot.onJoin(AntyBot.java:20) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_72]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[?:1.7.0_72]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_72]
at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_72]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:298) ~[mc.jar:git-Spigot-1611]
... 14 more

LOGI wywala tylko gdy nowy gracz wejdzie na serwer

Opublikowano

Zarejestrowałeś event w ogóle?

at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[mc.jar:git-Spigot-1611]

package me.Zientez;
 
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.Plugin;
 
public class AntyBot implements Listener {
 
public void onEnable()
  {
    getServer().getPluginManager().registerEvents(this, this);
  }
 
@EventHandler
public void onJoin(final PlayerJoinEvent e) {
Player p = e.getPlayer();
if(!p.hasPlayedBefore()) {
Bukkit.getScheduler().runTaskLater(Main, new Runnable() {
 
@Override
public void run() {
e.getPlayer().kickPlayer("§7[§aSERWER§7] §aWejdz ponownie na serwer!");
 
}
        }, 3L);
 
}
}
}

Wytabuj sobie sam :P.

@Edit
lajk

Opublikowano

@1361622928-U485574.pngbaphomet. Eventy się rejestruje w klasie głównej a to jest klasa poboczna (Tak dla Twojej wiadomości)

Jeżeli pomogłem, daj + Ciebie nic nie kosztuje Mi znaczy wiele.

 

 

 

 

 

 

 

Zachęcam do podsyłania pomysłów na film jako poradniki na YouTube

 

Opublikowano

@1361622928-U485574.pngbaphomet. a nie widzisz że jest tylko sam listener ? beż extends JavaPlugin ? - to informuje, że jest klasa główna i jeżeli chce parę klas to kto mu to broni ? Chce pisze w jednej klasie, jeżeli chce to nawet w pięćdziesięciu

Jeżeli pomogłem, daj + Ciebie nic nie kosztuje Mi znaczy wiele.

 

 

 

 

 

 

 

Zachęcam do podsyłania pomysłów na film jako poradniki na YouTube

 

Opublikowano

@1361622928-U485574.pngbaphomet. Eventy się rejestruje w klasie głównej a to jest klasa poboczna (Tak dla Twojej wiadomości)

 

 

 

 

@1361622928-U485574.pngbaphomet. a nie widzisz że jest tylko sam listener ? beż extends JavaPlugin ? - to informuje, że jest klasa główna i jeżeli chce parę klas to kto mu to broni ? Chce pisze w jednej klasie, jeżeli chce to nawet w pięćdziesięciu

 

Hm, najpierw mnie pouczasz a potem piszesz że każdy robi jak chce. (like)

Jak pisze z głowy to mogę sobie o czym zapomnieć :>.

Opublikowano

Przerobicie to jak ma byc, aby dzialalo? Bo tamto nie działa... 

 

Klasa Main:

 

package me.Zientez;
 
import org.bukkit.Bukkit;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
 
public class Main extends JavaPlugin implements Listener {
 
@Override
public void onDisable() {
System.out.print("Plugin zostal wylaczony");
}
 
@Override
public void onEnable() {
getServer().getPluginManager().registerEvents(this, this);
System.out.print("Plugin zostal wlaczony");
}
}
 
Klasa AntyBot:
 
package me.Zientez;
 
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.Plugin;
 
public class AntyBot implements Listener {
 
private static final Plugin Main = null;
 
@EventHandler
public void onJoin(final PlayerJoinEvent e) {
Player p = e.getPlayer();
if(!p.hasPlayedBefore()) {
Bukkit.getScheduler().runTaskLater(Main, new Runnable() {
 
@Override
public void run() {
e.getPlayer().kickPlayer("§7[§aSERWER§7] §aWejdz ponownie na serwer!");
 
}
        }, 3L);
 
}
}
}
 
@Babhomet. jutro dam Ci lajki bo dzis limit wyczerpany (pomagasz mi najwiecej :)) Aha eventy mozna rejestrowac takze tym? "Bukkit.getPluginManager().registerEvents(new AntyBot(), this);"?
 
Opublikowano

Jeżeli masz event w innej klasie niż głównej to właśnie tak powinieneś go rejestrować

 

zamień ten 

getServer().getPluginManager().registerEvents(this, this);

 

na 

Bukkit.getPluginManager().registerEvents(new AntyBot(), this);

Jeżeli pomogłem, daj + Ciebie nic nie kosztuje Mi znaczy wiele.

 

 

 

 

 

 

 

Zachęcam do podsyłania pomysłów na film jako poradniki na YouTube

 

Opublikowano

 

Jeżeli masz event w innej klasie niż głównej to właśnie tak powinieneś go rejestrować

 

zamień ten 

getServer().getPluginManager().registerEvents(this, this);

 

na 

Bukkit.getPluginManager().registerEvents(new AntyBot(), this);

 

Tak, plus, aby task działał (main nie był nullem) to musisz zrobić

Bukkit.getPluginManager().registerEvents(new AntyBot((Plugin) this), this);

W klasie AntyBot:

private final Plugin plugin;

public AntyBot(Plugin plugin) {
    this.plugin = plugin;
}

A  task starujesz:

Bukkit.getScheduler().runTaskLater(this.plugin, new Runnable() {

Dlaczego MPC popiera piractwo Minecrafta...

 

Do moderatora: Po co Ty to usuwasz??

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...