Seite 2 von 4

Re: Eigene Villager-Trades erstellen

BeitragVerfasst: Di 25. Mär 2014, 20:38
von Smite
Es ist craftbukkit... nicht Bukkit.

Re: Eigene Villager-Trades erstellen

BeitragVerfasst: Sa 29. Mär 2014, 09:53
von DonXs
Hey Summerfeeling,
schon krass was ein 13 Jähriger heutzutage kann ;)
Ein sehr gutes Tutorial, jedoch würde ich nicht die NMS Klassen benutzten (Das soll keine Kritik an deinem Programmieren oder deiner Art sein!),
ich würde dort lieber komplett mit Reflection rangehen oder was auch noch eine lösung sein könnte, wäre ProtocolLib.
Es sind zwar beide Varianten aufwendiger und schwieriger zu implementieren,
jedoch erweisen sie eine Dynamische umsetztung zudem ohne NMS Klassen,
die man allgemein vermeiden sollte.

MfG DonXs

Re: Eigene Villager-Trades erstellen

BeitragVerfasst: Sa 29. Mär 2014, 10:53
von Summerfeeling
McSmite hat geschrieben:Es ist craftbukkit... nicht Bukkit.


Hier mal die ganzen Imports:
Code: Alles auswählen
  1. import net.minecraft.server.v1_7_R1.EntityVillager;
  2. import net.minecraft.server.v1_7_R1.MerchantRecipe;
  3. import net.minecraft.server.v1_7_R1.MerchantRecipeList;
  4. import net.minecraft.server.v1_7_R1.WorldServer;
  5. import org.bukkit.craftbukkit.v1_7_R1.CraftWorld;
  6. import org.bukkit.craftbukkit.v1_7_R1.inventory.CraftItemStack;

Re: Eigene Villager-Trades erstellen

BeitragVerfasst: Sa 29. Mär 2014, 10:56
von Summerfeeling
DonXs hat geschrieben:Hey Summerfeeling,
schon krass was ein 13 Jähriger heutzutage kann ;)
Ein sehr gutes Tutorial, jedoch würde ich nicht die NMS Klassen benutzten (Das soll keine Kritik an deinem Programmieren oder deiner Art sein!),
ich würde dort lieber komplett mit Reflection rangehen oder was auch noch eine lösung sein könnte, wäre ProtocolLib.
Es sind zwar beide Varianten aufwendiger und schwieriger zu implementieren,
jedoch erweisen sie eine Dynamische umsetztung zudem ohne NMS Klassen,
die man allgemein vermeiden sollte.

MfG DonXs

Hey,
danke für die Indirekte Kritik und das Lob.
Ich habe gerade erst angefangen, mich generell mit dieser Packetmodifizierung, und editieren von fremden Klassen zu befassen, und bin da noch nicht so Erfahren. Bin da für jeden Hinweiß offen^^. Mit ProtocolLib habe ich noch nie programmiert, und kenn mich damit nicht aus, werde es mir aber zu Herzen nehmen, und mir das Plugin/die API/die Lib mal angucken. :)

Grüße! :)

Re: Eigene Villager-Trades erstellen

BeitragVerfasst: Sa 29. Mär 2014, 11:17
von DonXs
Ich kann nur eins sagen ProtocolLib ist enorm einfacher als Reflections ;) :D

MfG DonXs

Re: Eigene Villager-Trades erstellen

BeitragVerfasst: Sa 29. Mär 2014, 11:38
von PostCrafter
DonXs hat geschrieben:Ich kann nur eins sagen ProtocolLib ist enorm einfacher als Reflections ;) :D


Auf Packets bezogen auf jeden Fall, jedoch ist eine Implementierung von veränderten Villagertrades mit ProtocolLib nicht nur extrem viel aufwendiger, sondern auch nicht permanent andauernd wie bei diesem Tutorial (falls man es nur kurz braucht, um ein paar Villager zu modifizieren).

Re: Eigene Villager-Trades erstellen

BeitragVerfasst: Sa 29. Mär 2014, 12:31
von DonXs
PostCrafter hat geschrieben:
DonXs hat geschrieben:Ich kann nur eins sagen ProtocolLib ist enorm einfacher als Reflections ;) :D


Auf Packets bezogen auf jeden Fall, jedoch ist eine Implementierung von veränderten Villagertrades mit ProtocolLib nicht nur extrem viel aufwendiger, sondern auch nicht permanent andauernd wie bei diesem Tutorial (falls man es nur kurz braucht, um ein paar Villager zu modifizieren).


Ich meine die benutzung allgemein mit ProtocolLib ist einfacher als mit Reflections an NMS ranzugehen.

MfG DonXs

Re: Eigene Villager-Trades erstellen

BeitragVerfasst: Sa 29. Mär 2014, 17:35
von tahu98
Bei diesem Thema (und auch einigen anderen) ist aber NMS einfacher, da der Spieler mit ProtocoLib einfach nur sehen würde as er etwas tauschen kann, das aber eigentlich Serverseitig gar nicht kann.

Re: Eigene Villager-Trades erstellen

BeitragVerfasst: Sa 5. Jul 2014, 18:38
von b4cteria
Bei mir gibt es dann diese Fehlermeldung:

Code: Alles auswählen
  1. [19:43:19 WARN]: Can't keep up! Did the system time change, or is the server ove
  2. rloaded? Running 3531ms behind, skipping 70 tick(s)
  3. [19:43:26 ERROR]: Could not pass event InventoryClickEvent to Rush v1.0
  4. org.bukkit.event.EventException
  5.         at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
  6. va:294) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
  7.         at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
  8. a:62) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
  9.         at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
  10. ava:501) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
  11.         at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
  12. ava:486) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
  13.         at net.minecraft.server.v1_7_R3.PlayerConnection.a(PlayerConnection.java
  14. :1364) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
  15.         at net.minecraft.server.v1_7_R3.PacketPlayInWindowClick.a(SourceFile:32)
  16. [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
  17.         at net.minecraft.server.v1_7_R3.PacketPlayInWindowClick.handle(SourceFil
  18. e:10) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
  19.         at net.minecraft.server.v1_7_R3.NetworkManager.a(NetworkManager.java:157
  20. ) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
  21.         at net.minecraft.server.v1_7_R3.ServerConnection.c(SourceFile:134) [craf
  22. tbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
  23.         at net.minecraft.server.v1_7_R3.MinecraftServer.v(MinecraftServer.java:6
  24. 67) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
  25.         at net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:2
  26. 60) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
  27.         at net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:5
  28. 58) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
  29.         at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java
  30. :469) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
  31.         at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:6
  32. 28) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
  33. Caused by: java.lang.NullPointerException
  34.         at Game.VillagerTrades.VillagerTrades(VillagerTrades.java:27) ~[?:?]
  35.         at Listener.ShopBuy.on(ShopBuy.java:23) ~[?:?]
  36.         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0
  37. _51]
  38.         at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0
  39. _51]
  40.         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1
  41. .7.0_51]
  42.         at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_51]
  43.         at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
  44. va:292) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
  45.         ... 13 more
  46. >

Re: Eigene Villager-Trades erstellen

BeitragVerfasst: Sa 5. Jul 2014, 18:51
von Jofkos
Summerfeeling hat geschrieben: WorldServer world = ((CraftWorld) Bukkit.getPlayer("world")).getHandle();
Du meinst wohl getWorld!? also
Code: Alles auswählen
  1. WorldServer world = ((CraftWorld) Bukkit.getWorld("world")).getHandle();