Variablen Problem bei Aufteilung in verschiedene Class-Files

xCrimsonAxe

Mitglied
Bei meinem derzeitigen Projekt hat sich ein Problem aufgetan für das ich patu keine Lösung finden kann.
Sicherlich ist es eine einfache Lösung die am Ende dafür hergenommen werden müsste jedoch will sie sich mir nicht zeigen.
Code:
import org.bukkit.configuration.file.FileConfiguration;
public class Config{
   public void newDefault(String path, String name, int woodcost, int stonecost, int goldcost) {
       p.getConfig.addDefault(path+".name", name);
// p cannot be resolved
       p.getConfig.addDefault(path+".woodcost", woodcost);
// p cannot be resolved
       p.getConfig.addDefault(path+".stonecost", stonecost);
// p cannot be resolved
       p.getConfig.addDefault(path+".goldcost", goldcost);
// p cannot be resolved
   }
   public Config(Main p) {
       newDefault("Building.Settlement", "Siedlung", 100, 100, 100);
       p.getConfig().options().copyDefaults(true);
       p.saveConfig();
   }
}

in der Methode "newDefault" wird 1 Fehler je Zeile ausgeworfen das p nicht aufgelöst werden könne.

Vllt kann mir von euch jemand eine Lösung aufzeigen..
Mit besten Grüßen und reichlich Dank im voraus!
 
p ist nur eine Methodenparameter, und deshalb auch nur innerhalb dieser Methode bekannt. Du müsstest den übergebenen Wert in einer Instanzvariablen speichern, dann kannst du in allen Methoden des Objekts drauf zugreifen 😉
 
Nach ein wenig rumprobieren und googlen nach eurem Tipp mit den Instanzvariablen läuft das ganze jetzt wieder. Danke für die Hilfe =)

Java:
package de.varos.core;

public class Config {
    private Main p;
    public Config(Main p) {
        this.p = p;
        newDefaultBuilding("Stadtzentrum", "Siedlung", 1, 100, 100, 100);
        newDefaultBuilding("Stadtzentrum", "Dorf", 2, 100, 100, 100);
        newDefaultBuilding("Stadtzentrum", "Kleinstadt", 3, 100, 100, 100);
        newDefaultBuilding("Stadtzentrum", "Großstadt", 4, 100, 100, 100);
        newDefaultBuilding("Stadtzentrum", "Metropole", 5, 100, 100, 100);
        p.getConfig().options().copyDefaults(true);
        p.saveConfig();
    }
    public void newDefaultBuilding(String type, String name, int level, int woodcost, int stonecost, int goldcost) {
        p.getConfig().addDefault("Buildings."+type+".level "+level+".name", name);
        p.getConfig().addDefault("Buildings."+type+".level "+level+".woodcost", woodcost);
        p.getConfig().addDefault("Buildings."+type+".level "+level+".stonecost", stonecost);
        p.getConfig().addDefault("Buildings."+type+".level "+level+".goldcost", goldcost);
    }
}
 

Zurück
Oben