Custom Entity 1.9.2 default löschen

Wenn ihr bei eurem Plugin nicht weiter kommt, könnt ihr hier euer Problem beschreiben und um Hilfe bitten.

Custom Entity 1.9.2 default löschen

Beitragvon FlugRost » Mi 6. Apr 2016, 17:41

Hey,
ich versuche einen Zombie zu erschaffen der erst einmal gar nichts macht, er soll einfach nur rum stehen.
Deshalb wollte ich alle Goals löschen welche die default EntityZombie Class mit sich bringt.
Dabei bekomme ich aber immer Fehler mit denen ich nichts anfangen kann.
Hoffentlich könnt ihr mir weiter helfen.

Fehlermeldung:
Code: Alles auswählen
  1. [18:25:45 ERROR]: Could not pass event PlayerToggleSneakEvent to MobController v0.1
  2. org.bukkit.event.EventException
  3.    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[spigot_server.jar:git-Spigot-ccb6016-f92e01b]
  4.    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot_server.jar:git-Spigot-ccb6016-f92e01b]
  5.    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot_server.jar:git-Spigot-ccb6016-f92e01b]
  6.    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot_server.jar:git-Spigot-ccb6016-f92e01b]
  7.    at net.minecraft.server.v1_9_R1.PlayerConnection.a(PlayerConnection.java:1408) [spigot_server.jar:git-Spigot-ccb6016-f92e01b]
  8.    at net.minecraft.server.v1_9_R1.PacketPlayInEntityAction.a(SourceFile:43) [spigot_server.jar:git-Spigot-ccb6016-f92e01b]
  9.    at net.minecraft.server.v1_9_R1.PacketPlayInEntityAction.a(SourceFile:9) [spigot_server.jar:git-Spigot-ccb6016-f92e01b]
  10.    at net.minecraft.server.v1_9_R1.PlayerConnectionUtils$1.run(SourceFile:13) [spigot_server.jar:git-Spigot-ccb6016-f92e01b]
  11.    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_65]
  12.    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_65]
  13.    at net.minecraft.server.v1_9_R1.SystemUtils.a(SourceFile:45) [spigot_server.jar:git-Spigot-ccb6016-f92e01b]
  14.    at net.minecraft.server.v1_9_R1.MinecraftServer.D(MinecraftServer.java:721) [spigot_server.jar:git-Spigot-ccb6016-f92e01b]
  15.    at net.minecraft.server.v1_9_R1.DedicatedServer.D(DedicatedServer.java:400) [spigot_server.jar:git-Spigot-ccb6016-f92e01b]
  16.    at net.minecraft.server.v1_9_R1.MinecraftServer.C(MinecraftServer.java:660) [spigot_server.jar:git-Spigot-ccb6016-f92e01b]
  17.    at net.minecraft.server.v1_9_R1.MinecraftServer.run(MinecraftServer.java:559) [spigot_server.jar:git-Spigot-ccb6016-f92e01b]
  18.    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_65]
  19. Caused by: java.lang.ClassCastException: java.util.LinkedHashSet cannot be cast to java.util.List
  20.    at com.amihra.Spots.Creatures.ZombieLv.<init>(ZombieLv.java:17) ~[?:?]
  21.    at com.amihra.Spots.SpotListener.onShit(SpotListener.java:37) ~[?:?]
  22.    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_65]
  23.    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_65]
  24.    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_65]
  25.    at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_65]
  26.    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot_server.jar:git-Spigot-ccb6016-f92e01b]
  27.    ... 15 more


ZombieLv
Code: Alles auswählen
  1. import com.amihra.MobController;
  2. import net.minecraft.server.v1_9_R1.*;
  3. import org.bukkit.World;
  4. import org.bukkit.craftbukkit.v1_9_R1.CraftWorld;
  5. import java.util.List;
  6. public class ZombieLv extends EntityZombie {
  7.     public ZombieLv(World world, MobController mobController) {
  8.         super(((CraftWorld)world).getHandle());
  9.         List goalB = (List)EntityTypes.getPrivateField("b", PathfinderGoalSelector.class, goalSelector); goalB.clear(); (Zeile 17)
  10.         List goalC = (List)EntityTypes.getPrivateField("c", PathfinderGoalSelector.class, goalSelector); goalC.clear();
  11.         List targetB = (List)EntityTypes.getPrivateField("b", PathfinderGoalSelector.class, targetSelector); targetB.clear();
  12.         List targetC = (List)EntityTypes.getPrivateField("c", PathfinderGoalSelector.class, targetSelector); targetC.clear();
  13.     }
  14. }


EntityTypes
Code: Alles auswählen
  1. import com.amihra.MobController;
  2. import com.amihra.Spots.Spot;
  3. import net.minecraft.server.v1_9_R1.Entity;
  4. import org.bukkit.Location;
  5. import org.bukkit.craftbukkit.v1_9_R1.CraftWorld;
  6. import org.bukkit.entity.LivingEntity;
  7. import org.bukkit.metadata.FixedMetadataValue;
  8. import java.lang.reflect.Field;
  9. import java.util.Map;
  10. public enum EntityTypes {
  11.     ZombieLv("Zombie",54, com.amihra.Spots.Creatures.ZombieLv.class);
  12.     private EntityTypes(String name, int id, Class<? extends Entity> custom) {
  13.         addToMaps(custom, name, id);
  14.     }
  15.     public static void spawnEntity(Entity entity, Location loc) {
  16.         entity.setLocation(loc.getX(), loc.getY(), loc.getZ(), loc.getYaw(), loc.getPitch());
  17.         ((CraftWorld)loc.getWorld()).getHandle().addEntity(entity);
  18.     }
  19.     private static void addToMaps(Class clazz, String name, int id) {
  20.         ((Map)getPrivateField("c", net.minecraft.server.v1_9_R1.EntityTypes.class, null)).put(name, clazz);
  21.         ((Map)getPrivateField("d", net.minecraft.server.v1_9_R1.EntityTypes.class, null)).put(clazz, name);
  22.         ((Map)getPrivateField("f", net.minecraft.server.v1_9_R1.EntityTypes.class, null)).put(clazz, Integer.valueOf(id));
  23.     }
  24.     public static Object getPrivateField(String fieldName, Class clazz, Object object) {
  25.         Field field;
  26.         Object o = null;
  27.         try {
  28.             field = clazz.getDeclaredField(fieldName);
  29.             field.setAccessible(true);
  30.             o = field.get(object);
  31.         }catch(NoSuchFieldException e){
  32.             e.printStackTrace();
  33.         }catch(IllegalAccessException e) {
  34.             e.printStackTrace();
  35.         }
  36.         return o;
  37.     }
  38. }


SneakEvent
Code: Alles auswählen
  1. @EventHandler
  2.     public void onShit(PlayerToggleSneakEvent e){
  3.         if(e.isCancelled())return;
  4.         EntityTypes.spawnEntity(new ZombieLv(Bukkit.getWorld("world"),manager.getPlugin()),e.getPlayer().getLocation());
  5.     }


PS: Ich habe mit diesem Tutorial gearbeitet, scheinbar bin ich aber der einzige mit solch einem Fehler D:
https://www.spigotmc.org/threads/tutorial-creating-custom-entities-with-pathfindergoals.18519/
Benutzeravatar
FlugRost
 
Beiträge: 8
Registriert: Fr 4. Dez 2015, 18:48

Re: Custom Entity 1.9.2 default löschen

Beitragvon Letsplaybar » Mi 6. Apr 2016, 18:37

der Fehlercode sagt nur aus das du di Zeile 17 der Klasse ZombieLv nicht zur einer Liste des Packet java.util.List;
also tritt der Fehler hier auf:
Code: Alles auswählen
  1. List targetC = (List)EntityTypes.getPrivateField("c", PathfinderGoalSelector.class, targetSelector); targetC.clear();
Bild
Helfe Wo ich kann.
Mein MinecraftServer: Letsplaybaro.de - Suchen Developer/Bilder

I hacked 127.0.0.1!!! :)
Benutzeravatar
Letsplaybar
 
Beiträge: 195
Registriert: Mo 1. Feb 2016, 17:21
Wohnort: Berlin

Re: Custom Entity 1.9.2 default löschen

Beitragvon FlugRost » Mi 6. Apr 2016, 18:47

Danke für die Antwort!

Ja, das dachte ich mir schon ein wenig. Ich habe nur keine Ahnung wie ich das Problem beheben soll.
Ich bekomme es also nicht hin die Aufgaben und Ziele von einem Entity zu löschen um dann meine eigenen hinzufügen zu können.
Benutzeravatar
FlugRost
 
Beiträge: 8
Registriert: Fr 4. Dez 2015, 18:48


Zurück zu Hilfe und Support

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 21 Gäste

cron