• 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

Creepaz

Minecrafter
Registriert
1 Juni 2016
Beiträge
15
Diamanten
0
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:

GPSforLEGENDS

Vorarbeiter
Registriert
21 März 2014
Beiträge
289
Alter
85
Diamanten
300
Minecraft
GPSforLEGENDS
Code:
final ConfigurationSection cs = getConfig().getConfigurationSection("bots");
              
                for(String str : cs.getKeys(false)){
                    Double[] locs = new Double[3];
                    final float yaw = (float) cs.get(str + ".yaw");
                    final float pitch = (float) cs.get(str + ".pitch");
                    locs[0] = cs.getDouble(str + ".x");
                    locs[1] = cs.getDouble(str + ".y");
                    locs[2] = cs.getDouble(str + ".z");
                  
                    final NPC npc = new NPC("was auch immer", new Location(world, locs[0],locs[1], locs[2], yaw, pitch));
                    npc.spawn();
                }
 

Creepaz

Minecrafter
Registriert
1 Juni 2016
Beiträge
15
Diamanten
0
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?
 

Creepaz

Minecrafter
Registriert
1 Juni 2016
Beiträge
15
Diamanten
0
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?

Nope, so funktioniert das schonmal nicht. Hast du dafür noch eine Lösung?
 

Creepaz

Minecrafter
Registriert
1 Juni 2016
Beiträge
15
Diamanten
0
Java + bukkit lernen
Der Code funktioniert so wie er ist.... evtl. musst du ihn ein bisschen abändern aber das Grundprinzip ist so richtig.

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?
 

Creepaz

Minecrafter
Registriert
1 Juni 2016
Beiträge
15
Diamanten
0
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?

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
 

Creepaz

Minecrafter
Registriert
1 Juni 2016
Beiträge
15
Diamanten
0
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?

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.
 

Creepaz

Minecrafter
Registriert
1 Juni 2016
Beiträge
15
Diamanten
0
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.

Habs jetzt mittels NumberConversions selber gefixxt.
 

Creepaz

Minecrafter
Registriert
1 Juni 2016
Beiträge
15
Diamanten
0
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!
 
Oben