2017-05-10 7 views
0

Derzeit bekommt mein Code alle Werte aus meiner Konfig in einem bestimmten Abschnitt, dann habe ich etwas anderes, das zufällig aus der Liste wählt. Ich bekomme das Zufallsergebnis über getRandomStringFromList(getLocationList()). Also, ich benutze es so,Verwenden Sie den gleichen Wert aus einem zufälligen Ergebnis

p.teleport(new Location(Bukkit.getWorld("world"), 
    plugin.getConfig().getInt("locations." + plugin.getRandomStringFromList(plugin.getLocationList()) + ".x"), 
    plugin.getConfig().getInt("locations." + plugin.getRandomStringFromList(plugin.getLocationList()) + ".y"), 
    plugin.getConfig().getInt("locations." + plugin.getRandomStringFromList(plugin.getLocationList()) + ".z")) 
); 

Allerdings hat dies einige Probleme. Anstatt das gleiche Ergebnis zu verwenden, erhält es für alle 3 ein anderes zufälliges. Ich brauche sie alle, um das Ergebnis im dritten zu verwenden, wie würde ich das tun?

+1

Sie könnten damit beginnen, dass Sie das nicht in einem einzeiligen Code tun (ein Chaos zum Debuggen). Dadurch können Sie den Zufallswert in einer tmp-Variablen speichern, um ihn wiederzuverwenden. – AxelH

Antwort

1

Speichern Sie die zufällige Zeichenfolge in einer lokalen Variablen und verwenden Sie diese in der p.teleport. Code würde wie folgt aussehen:

String randomString = plugin.getRandomStringFromList(plugin.getLocationList()); 

p.teleport(new Location(Bukkit.getWorld("world"), 
    plugin.getConfig().getInt("locations." + randomString + ".x"), 
    plugin.getConfig().getInt("locations." + randomString + ".y"), 
    plugin.getConfig().getInt("locations." + randomString + ".z"))); 
+1

Upvote deins, weil Sie die Zeile neu formatieren, immer noch viele denken in dieser einzigartigen Linie passieren, aber zumindest lesbar – AxelH

0

Dies liegt daran, Sie in der gleichen Zeile „get location“ auf 3 verschiedene Instanz Randomisierung

Was tun Sie könnten, ist, dass Sie die Ergebnisse der ersten Instanz speichern könnten und wiederverwenden

var location = plugin.getRandomStringFromList(plugin.getLocationList()); 

p.teleport(new Location(Bukkit.getWorld("world"), 

plugin.getConfig().getInt("locations." + location + ".x"), 
plugin.getConfig().getInt("locations." + location + ".y"), 
plugin.getConfig().getInt("locations." + location + ".z"))); 
Verwandte Themen