1. Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Bots nach Restart trotzdem behalten

Dieses Thema im Forum "Spigot" wurde erstellt von Creepaz, 1. Juni 2016.


  1. Creepaz
    Offline

    Creepaz

    Registriert seit:
    1. Juni 2016
    Beiträge:
    8
    Geschlecht:
    männlich
    Hallöchen,

    ich bin dabei einen RPG-Server aufzubauen, und habe mir einen Befehl gemacht um Ingame NPC's zu spawnen. Diese werden mit den Koordinaten in die Config eingetragen, nach einem Serverrestart sind diese allerdings wieder weg, ist auch irgendwo logisch.

    Wie lasse ich die NPC's in der Config nun am besten nach Serverstart spawnen? Kann man das mit einer for-schleife irgendwie bewältigen?

    Hier mal eben der Code um den NPC zu spawnen;

    if(args[0].equalsIgnoreCase("add") && args[1] != "") {
    String botName = args[1];

    double x = p.getLocation().getX();
    double y = p.getLocation().getY();
    double z = p.getLocation().getZ();
    float yaw = p.getLocation().getYaw();
    float pitch = p.getLocation().getPitch();

    plugin.getConfig().set("bots." + botName + ".x", x);
    plugin.getConfig().set("bots." + botName + ".y", y);
    plugin.getConfig().set("bots." + botName + ".z", z);
    plugin.getConfig().set("bots." + botName + ".yaw", yaw);
    plugin.getConfig().set("bots." + botName + ".pitch", pitch);
    plugin.saveConfig();

    NPC npc = new NPC(args[1], p.getLocation());
    npc.spawn();
    npc.rmvFromTablist();

    p.sendMessage("§aDu hast den Bot §6" + botName + " §aerfolgreich erstellt!");
    }

    Wie kann ich nun die Koordinaten am besten auslesen und dann die NPC's wieder spawnen?

    Vielen Dank im vorraus.
     
    Zuletzt bearbeitet: 1. Juni 2016
  2. GPSforLEGENDS
    Offline

    GPSforLEGENDS

    Registriert seit:
    21. März 2014
    Beiträge:
    289
    Minecraft:
    GPSforLEGENDS
    Code (Text):
    1.  
    2. final ConfigurationSection cs = getConfig().getConfigurationSection("bots");
    3.              
    4.                 for(String str : cs.getKeys(false)){
    5.                     Double[] locs = new Double[3];
    6.                     final float yaw = (float) cs.get(str + ".yaw");
    7.                     final float pitch = (float) cs.get(str + ".pitch");
    8.                     locs[0] = cs.getDouble(str + ".x");
    9.                     locs[1] = cs.getDouble(str + ".y");
    10.                     locs[2] = cs.getDouble(str + ".z");
    11.                  
    12.                     final NPC npc = new NPC("was auch immer", new Location(world, locs[0],locs[1], locs[2], yaw, pitch));
    13.                     npc.spawn();
    14.                 }
    15.  
     
  3. Creepaz
    Offline

    Creepaz

    Registriert seit:
    1. Juni 2016
    Beiträge:
    8
    Geschlecht:
    männlich
    Danke schonmal, allerdings wird mir world immer noch rot unterstrichen, da ich das ja nicht in die Config speichern lasse. Wie kann ich das machen, da man ja in der Location keinen String angeben kann, würde es schon funktionieren wenn ich einfach
    World world = Bukkit.getWorld("world2");
    mache?
     
  4. Creepaz
    Offline

    Creepaz

    Registriert seit:
    1. Juni 2016
    Beiträge:
    8
    Geschlecht:
    männlich
    Nope, so funktioniert das schonmal nicht. Hast du dafür noch eine Lösung?
     
  5. GPSforLEGENDS
    Offline

    GPSforLEGENDS

    Registriert seit:
    21. März 2014
    Beiträge:
    289
    Minecraft:
    GPSforLEGENDS
    Java + bukkit lernen
    Der Code funktioniert so wie er ist.... evtl. musst du ihn ein bisschen abändern aber das Grundprinzip ist so richtig.
     
    Zuletzt bearbeitet: 1. Juni 2016
  6. Creepaz
    Offline

    Creepaz

    Registriert seit:
    1. Juni 2016
    Beiträge:
    8
    Geschlecht:
    männlich
    In der Konsole ist dieser Fehler:
    Error occurred while enabling Reallife v1.0 (Is it up to date?)
    java.lang.ClassCastException: java.lang.Double cannot be cast to java.lang.Float
    at me.creepaz.reallife.Main.loadNPCs(Main.java:99) ~[?:?]
    at me.creepaz.reallife.Main.onEnable(Main.java:36) ~[?:?]
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) ~[spigot-1.8.8.jar:git-Spigot-6c9b0a1-de5c261]
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340) [spigot-1.8.8.jar:git-Spigot-6c9b0a1-de5c261]
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [spigot-1.8.8.jar:git-Spigot-6c9b0a1-de5c261]
    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:356) [spigot-1.8.8.jar:git-Spigot-6c9b0a1-de5c261]
    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:316) [spigot-1.8.8.jar:git-Spigot-6c9b0a1-de5c261]
    at net.minecraft.server.v1_8_R3.MinecraftServer.s(MinecraftServer.java:414) [spigot-1.8.8.jar:git-Spigot-6c9b0a1-de5c261]
    at net.minecraft.server.v1_8_R3.MinecraftServer.k(MinecraftServer.java:378) [spigot-1.8.8.jar:git-Spigot-6c9b0a1-de5c261]
    at net.minecraft.server.v1_8_R3.MinecraftServer.a(MinecraftServer.java:333) [spigot-1.8.8.jar:git-Spigot-6c9b0a1-de5c261]
    at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:263) [spigot-1.8.8.jar:git-Spigot-6c9b0a1-de5c261]
    at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:524) [spigot-1.8.8.jar:git-Spigot-6c9b0a1-de5c261]
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_72]

    mit deinem Code.. Lösung?
     
  7. Creepaz
    Offline

    Creepaz

    Registriert seit:
    1. Juni 2016
    Beiträge:
    8
    Geschlecht:
    männlich
    Double kann nicht zu Float gecastet werden, soweit bin ich schon. Aber weshalb dieser Fehler? x,y, sowie z werden ja eben auch als Double in der Config gespeichert.. Die Config sieht so aus:

    bots:
    Waffenmeister:
    name: Waffenmeister
    x: 1026.5257021676944
    y: 120.0
    z: 363.8148701853248
    yaw: 1.1006165
    pitch: 7.3999567
     
  8. 可愛い
    Offline

    可愛い

    Registriert seit:
    19. Mai 2014
    Beiträge:
    770
    Geschlecht:
    weiblich
    Wie bereits davor angemerkt: Lern Java. Mein Gott, du weißt nicht mal wie du mit den Datentypen umgehst. Wie soll man dir da bitte helfen können?

    http://openbook.rheinwerk-verlag.de/javainsel/

    gut, kostenlos und auf deutsch
     
    Zuletzt bearbeitet: 1. Juni 2016
  9. Creepaz
    Offline

    Creepaz

    Registriert seit:
    1. Juni 2016
    Beiträge:
    8
    Geschlecht:
    männlich
    Dafür bin ich hier, ich kaufe mir sicherlich kein Buch, nur um etwas erfolgreicher für Minecraft ein Plugin zu schreiben. Ich lerne es, indem ich es mache. Das hat bis zu diesem Punkt auch recht gut geklappt. Aber hier bekommt man anscheinend keine produktive Hilfe.
     
  10. Creepaz
    Offline

    Creepaz

    Registriert seit:
    1. Juni 2016
    Beiträge:
    8
    Geschlecht:
    männlich
    Habs jetzt mittels NumberConversions selber gefixxt.
     
  11. 可愛い
    Offline

    可愛い

    Registriert seit:
    19. Mai 2014
    Beiträge:
    770
    Geschlecht:
    weiblich
    Na siehste, dann hat das ja etwas gebracht, dass du selbst versuchst hast das Problem zu lösen anstelle es dir von anderen vorkauen zu lassen.
     
  12. GPSforLEGENDS
    Offline

    GPSforLEGENDS

    Registriert seit:
    21. März 2014
    Beiträge:
    289
    Minecraft:
    GPSforLEGENDS
    Sind dir 0€ wirklich zu viel? ;)
     
  13. Creepaz
    Offline

    Creepaz

    Registriert seit:
    1. Juni 2016
    Beiträge:
    8
    Geschlecht:
    männlich
    Sry Leute, das ich hier so genervt bzw. angepisst rüber komme, aber sowas nervt mich eben. Habe an dem Problem jetzt 1,5 Tage dran gesessen, und gehofft, das ihr mir helfen könnt. Das mit kostenlos habe ich überlesen, sry. Jedenfalls hab ich mir das alles mal etwas angeschaut und dadurch die Lösung gefunden. Danke euch!
     
  14. GPSforLEGENDS
    Offline

    GPSforLEGENDS

    Registriert seit:
    21. März 2014
    Beiträge:
    289
    Minecraft:
    GPSforLEGENDS
    Bitte :) Ich kenne das auch wenn man Stunden vor seinem Code sitzt und nicht weiterkommt und die Aggression steigt ^^ Aber umso besser ist es das du den letzten Schritt alleine geschafft hast.
     
    • Gefällt mir Gefällt mir x 1