Jump to content

Minecraft Plugin: Modifizieren der Tablist


Empfohlene Beiträge

Hallo Leute, ich habe mal eine Frage, ich bin anfänger im programmieren mit Java und habe bei dem Plugin irgendwo einen Fehler, leider weiß ich aber nicht wo, bitte helft mir

package Info;import net.minecraft.server.v1_7_R1.PacketPlayOutPlayerInfo;import org.bukkit.craftbukkit.v1_7_R1.entity.CraftPlayer;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.java.JavaPlugin;public class JoinListener extends JavaPlugin implements Listener {		@SuppressWarnings("unused")	private Object plugin;	public JoinListener(JoinListener plugin){		this.plugin = plugin;		plugin.getServer().getPluginManager().registerEvents(this, plugin);	}		@EventHandler	public void OnJoin(PlayerJoinEvent e) {		Player p = e.getPlayer();				String name = p.getName();		if(name.length() > 14){			name = name.substring(0, 14);		} 				updateTablist(p);				if(p.isOp()){			e.setJoinMessage("Welcome back " + p.getName());			p.setPlayerListName("?4" + name);		}else{			e.setJoinMessage("Welcome to the server " + p.getName());			 if(p.hasPermission("Farbe.Supporter")){				p.setPlayerListName("?a" + name);			 }		}												}				public void updateTablist(Player p){		PacketPlayOutPlayerInfo packet1 = new PacketPlayOutPlayerInfo("?1rfhdzfgk", true, 0);		((CraftPlayer) p).getHandle().playerConnection.sendPacket(packet1);				PacketPlayOutPlayerInfo packet2 = new PacketPlayOutPlayerInfo("?8eefdsedgad", true, 0);		((CraftPlayer) p).getHandle().playerConnection.sendPacket(packet2);				PacketPlayOutPlayerInfo packet3 = new PacketPlayOutPlayerInfo("?5sdfs<e", true, 0);		((CraftPlayer) p).getHandle().playerConnection.sendPacket(packet3);	}}

Hier ist die dazugehörige Fehlermeldung:

[13:39:47] [server thread/ERROR]: Could not load 'plugins/ScoreF.jar' in folder 'plugins' org.bukkit.plugin.InvalidPluginException: Abnormal plugin type at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:56) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:133) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:313) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:236) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at org.bukkit.craftbukkit.v1_7_R1.CraftServer.loadPlugins(CraftServer.java:350) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at org.bukkit.craftbukkit.v1_7_R1.CraftServer.reload(CraftServer.java:771) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at org.bukkit.Bukkit.reload(Bukkit.java:279) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:23) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:175) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchCommand(CraftServer.java:683) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchServerCommand(CraftServer.java:670) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at net.minecraft.server.v1_7_R1.DedicatedServer.aw(DedicatedServer.java:286) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:251) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:545) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:457) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] Caused by: java.lang.InstantiationException: Info.JoinListener at java.lang.Class.newInstance(Unknown Source) ~[?:1.7.0_51] at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:52) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-b3020jnks] ... 15 more

Ich hoffe ihr könnt mir helfen ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ist das nicht egal? Helfen wir ihm doch einfach (oder wenigstens könnten wir ihm ein Beef anbieten ^^)!

Also...

1. Passt dein Plugin zu deiner Bukkit-Version auf deinem Server?

2. Zwar ist das nicht der Fehler, aber wie sieht deine plugin.yml aus?

3. Damit das Event funktioniert, musst du es auch registrieren. Dafür stellt JavaPlugin eine onEnable()-Methode zur Verfügung. Dort fügst du dann folgende Zeile ein:


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

Das ist erstmal das, was ich als erstes finde. Allerdings hatte ich noch nie "Abnormal plugin type" :D

Gruß Arcalio

bearbeitet von Arcalio
Link zu diesem Kommentar
Auf anderen Seiten teilen

Also mir sieht das nach der einzigen Klasse aus, du kannst also selbst schauen :P

Also mir sieht das nach der einzigen Klasse aus, du kannst also selbst schauen :P

1. Beziehen diese Zitate sich auf unterschiedliche Themen

2. Selbst wenn sie sich auf dasselbe Thema beziehen, so ist es widersprüchlich

3. Zweimal derselbe Smiley... Bah.

Liebe Grüße,

Baustein

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ist das nicht egal? Helfen wir ihm doch einfach (oder wenigstens könnten wir ihm ein Beef anbieten ^^)!

Also...

1. Passt dein Plugin zu deiner Bukkit-Version auf deinem Server?

2. Zwar ist das nicht der Fehler, aber wie sieht deine plugin.yml aus?

3. Damit das Event funktioniert, musst du es auch registrieren. Dafür stellt JavaPlugin eine onEnable()-Methode zur Verfügung. Dort fügst du dann folgende Zeile ein:

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

Das ist erstmal das, was ich als erstes finde. Allerdings hatte ich noch nie "Abnormal plugin type" :D

Gruß Arcalio

1. mein Server läuft auf 1.7.2-1.7.5 und die Bukkit version mit der ich programmiere ist 1.7.2

2. name: TabName

version: 1.0

main: Info.JoinListener

3. Diese Zeile ist schon enthalten:

	public JoinListener(JoinListener plugin){		this.plugin = plugin;		plugin.getServer().getPluginManager().registerEvents(this, plugin);	}

#edit: Ich habe das Plugin jetzt soweit bearbeitet, dass es keine Fehlermeldungen anzeigt und dennoch nicht Funktioniert -> Ich habe nun dies mit dem Registrieren der Events in eine OnEnable() methode geschrieben

und außerdem noch das System.out.println("[Tabname] " + this.getDescription().getversion() + " is now enabled") hinzugefügt um zu sehen ob das Plugin überhaupt geladen wird.

Das Plugin wird geladen und zeigt keine Fehlermeldungen mehr an, dennoch funktioniert es nicht, hat wer noch andere ideen?

bearbeitet von Chanti_heyhey
Link zu diesem Kommentar
Auf anderen Seiten teilen

1. Wir können dir sicher besser helfen, wenn du den gesamten Code postest und nicht nur Bruchstücke. Am besten auch nicht dazwischen zu viele Leerzeilen.

2. Hast du denn mal getestet, ob dein Event funktioniert? Geh am besten schrittweise durch deinen Code und überprüfe, an welcher Stelle etwas nicht passt. Dort kannst du dann das Problem/deinen Fehler immer weiter eingrenzen ;)

@Baustein: Was zur Hölle laberst du? :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

@Baustein: Was zur Hölle laberst du? :D

Darauf geh ich mal nicht ein ^^

main: Info.JoinListener

"Info" ist ein ungewöhnlicher Package-Name, sicher, dass er so ist? Das wärs ja noch ^^ Dürfte dann aber beim Laden des Plugins eine PackageNotFoundException oder so raushauen...

Liebe Grüße,

Baustein

Link zu diesem Kommentar
Auf anderen Seiten teilen

"Info" ist ein ungewöhnlicher Package-Name, sicher, dass er so ist? Das wärs ja noch ^^ Dürfte dann aber beim Laden des Plugins eine PackageNotFoundException oder so raushauen...

Du siehst doch oben die Hauptklasse. Offensichtlich wurde das Package so genannt, auch wenn das unüblich ist ;)

Außerdem lag die Fehlermeldung an der Tatsache, dass ein Konstruktor verwendet wurde statt der onEnable()-Methode...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...
B
B