• 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!

Spigot Schild aus Config holen

gmb32

Kuhfänger
Registriert
17 Juni 2014
Beiträge
84
Diamanten
0
Moin ich wollte wenn ein Spieler die Welt wechselt ein Schild sich ändert. Bei dem 1. was ich Programmiert habe funktioniert es beim 2. wo genau das selbe verbaut ist sagt er mir das dass kein Schild wäre. Ist es aber.

Java:
if(w.getName().equalsIgnoreCase("Map")) {
            File file = new File("plugins//Axtsentials//Maps//Map//Punkte.yml");
            YamlConfiguration cfg = new YamlConfiguration().loadConfiguration(file);
            World w2 = Bukkit.getWorld("Spawn");
            int x = cfg.getInt("Schild.X");
            int y = cfg.getInt("Schild.Y");
            int z = cfg.getInt("Schild.Z");
            if(w2.getBlockAt(x,y,z).getState() instanceof Sign) {
                Sign sign = (Sign) w2.getBlockAt(x,y,z).getState();
                Bukkit.getScheduler().runTaskLater(Main.getInstace(), new Runnable() {
                    
                    @Override
                    public void run() {
                        sign.setLine(2, "§b"+ Bukkit.getWorld("Map").getPlayers().size() +" §7/ §b20");
                        sign.update();
                        
                    }
                }, 3);
                
                
            }else {
                p.sendMessage(Var.prefix+" §cFehler");
            }
 
D

deleted202832

Guest
lass dir doch mal die Werte ausgeben und schau was dir das Plugin dann sagt vlt speicherst du die Werte falsch ab oder holst diese aus nem falschen Pfad?
Code:
int x = cfg.getInt("Schild.X");
int y = cfg.getInt("Schild.Y");
int z = cfg.getInt("Schild.Z");

p.sendMessage("X = " + x);
p.sendMessage("Y = " + y);
p.sendMessage("Z = " + z);
 

SirYwell

PlotSquared Entwickler
Registriert
30 Juni 2017
Beiträge
540
Diamanten
488
Minecraft
SirYwell
Ich hätte da ein paar Verbesserungsvorschläge:
1. Die Konfigurationsdatei nicht jedes Mal neu einlesen, wenn der Befehl ausgeführt wird. Erleichtert auch das Abspeichern.
2. Speichere direkt eine Location, diese ist nämlich ConfigurationSerializable. Beispiel

java:
public Location loadLocation(String path) {
    return (Location) getConfig().get(path);
}

public void saveLocation(Location location, String path) {
    getConfig().set(path, location);
    saveConfig();
}
 

gmb32

Kuhfänger
Registriert
17 Juni 2014
Beiträge
84
Diamanten
0
Vielen vielen Dank SirYwell deine Variante hat funktioniert :) Das gibt nen Gefällt mir ;) Trotzdem ist das komische das ich bei einer anderen Map genau das gleiche gemacht habe und da hat es funktioniert, nur bei der nicht. Naja egal
 
Oben