Frage von pinguin5202004, 64

Wo ist der Fehler Oster Eierer Plugin?

Hallo. Ich versuche ein Ostereiersuch Plugin zu schreiben! Ich möchte dafür, dass eine Datei von einem Spieler angelegt wird, wenn er joint. Das geht aber nicht kann mir jemand helfen?

Code:

package me.pinguin__hd.ostereier;

import java.io.File; import java.io.IOException;

import org.bukkit.command.Command; import org.bukkit.command.CommandSender; import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.plugin.java.JavaPlugin;

public class OsterEier extends JavaPlugin implements Listener {

public String pr = "§7[§eEiersuche§7] §r";
public String noperm = pr + "§cDu hast keine Rechte für diesen Befehl!";

public void onEnable() {
        CheckUserdata();
        System.out.println("[" + this.getName() + "] by pinguin__HD ist jetzt AKTIV!");
}
public void onDisable() {
    System.out.println("[" + this.getName() + "] version " + this.getDescription().getVersion() + " by pinguin__HD ist jetzt nicht mehr AKTIV!");
}

public boolean onCommand(CommandSender sender, Command cmd, String lable, String[] args) {
    
    Player p = (Player) sender;
    
    if(cmd.getName().equalsIgnoreCase("egg")) {
        p.sendMessage(pr + "§7Test §aERFOLGREICH!");
    }
    return true;
}
public void CheckUserdata() {
    File file1 = new File("plugins/OsterEier");
    if(!file1.isDirectory()) {
        file1.mkdir();
    }
    File file2 = new File("plugins/OsterEier/users");
    if(!file2.isDirectory()) {
        file2.mkdir();
    }
}

@EventHandler
public void onJoin(PlayerJoinEvent e) throws IOException {
    Player p = e.getPlayer();
    File file = new File("plugins/OsterEier/users/" + p.getName() + ".yml");
    if(!file.exists()) {
        file.createNewFile();
        YamlConfiguration.loadConfiguration(file).set("eggs", "0");
        YamlConfiguration.loadConfiguration(file).save(file);
    }
}

}

Antwort
von Sprax2000, 29

Hier ist mal meine Class mit der ich eine Datei anlegen. Kannst du dir ja für deine Zwecke anpassen. createFile() habe ich immer im onEnable() ausgeführt

package me.sprax2013.coin_eco.files;

import java.io.File;
import java.io.IOException;

import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.plugin.java.JavaPlugin;

import me.sprax2013.coin_eco.Main;

public class ConfigFile {
private final static String PluginName = JavaPlugin.getProvidingPlugin(Main.class).getDescription().getName();
private final static String Console_Prefix = "[" + PluginName + "] ";

private static File file;
private static FileConfiguration cfg;

public static void reloadFile() {
if (file == null) {
file = new File("plugins" + File.separator + PluginName, "config.yml");
}

if (!(file.exists())) {
file.getParentFile().mkdir();

try {
file.createNewFile();
} catch (IOException e) {
System.out.println(Console_Prefix + "Die \"config.yml\" konnte nicht erstellt werden!");
System.out.println(Console_Prefix + "Error creating file \"config.yml\"!");
e.printStackTrace();
}
}
cfg = YamlConfiguration.loadConfiguration(file);
}

public static FileConfiguration getFile() {
if (cfg == null) {
reloadFile();
}
return cfg;
}

public static void saveFile() {
if (file == null || cfg == null)
return;

try {
cfg.save(file);
} catch (IOException error) {
System.out.println(Console_Prefix + "Die \"config.yml\" konnte nicht gespeichert werden!");
System.out.println(Console_Prefix + "Error saving file \"config.yml\"!");
error.printStackTrace();
}
}

public static void createFile() {
if (getFile().getString("updater") == null) {
getFile().set("updater", true);
}

saveFile();
}
}
Kommentar von pinguin5202004 ,

Ich kann damit leider nichts anfangen. Siehst du einen Fehler, da wo die Datei ertellt werden soll?

Kommentar von Sprax2000 ,

Ich lerne Aktuell noch Java aber du kannst mal vergleichen wie ich die Datei erstzelle und wie du sie erstellst.

Ich würde mal das hier versuchen (Dein Code nur umgeschrieben): http://pastebin.com/tTbQShxZ

Meine Änderungen:

  • Ein paar Zeilen an Kommentaren
  • CheckUserdata(); im onEnable() ausgeklammert
  • CheckUserdata() ausgeklammert
  • onJoin umgeschrieben

Habs nicht getestet aber sollten Funktionieren. Sag einfach Bescheid :)

LG Sprax2013

Kommentar von pinguin5202004 ,

Ok, ich glaube der onJoin teil geht nicht. Es wird kein Orner erstellt und auch keine Player datei.

Kommentar von Sprax2000 ,

Ist im onEnable() Teil ein Listener registriert? Du kannst auch Debug-Nachrichten nutzen (z.B An bestimmten Stellen eine Nachricht in der Konsole ausgeben) - Das weißt du wo der Fehler liegt bzw. wie weit der Code bearbeitet wird, bis der Fehler entsteht

Keine passende Antwort gefunden?

Fragen Sie die Community