Hallo Jungs und Mädels
Entschuldigt bitte, aber ich weiß leider nicht ob ich hier richtig bin.
Ich habe keine Ahnung von Java und wollte mich mal hier an Euch wenden.
Ich suche ein Plugin was in Minecraft eine Welt wieder Zurücksetzt.
Das heißt: Ich besitze eine Lobby und dann kann man in verschiedene Welten gehen ( zum Beispiel Rush Maps ). Die Map befindet sich zu diesem Zeitpunkt im original Zustand. Dann wenn ein Team gewonnen hat ist die Map unbrauchbar. Jetzt bräuchte ich bitte ein Plugin was dafür sorgt, nachdem der letzte Spieler die Welt verlassen hat, dass die Welt sich automatisch zurücksetzt in den Original Zustand.
Ist das möglich?
Ich habe hier einen Code gefunden und kann damit aber nichts anfangen und daher frage ich ganz nett ob mir das bitte einer zurecht schneiden kann.
Wenn ich das richtig verstanden habe, dann hat das etwas mit diesem Teil hier zutun:
Ist bitte einer so nett und kann mir daraus etwas basteln?
Oder vielleicht hat auch jemand eine andere Idee wie man so etwas schreibt.
Wenn es etwas kosten soll, dann bitte mir den Preis vorher nennen und ich denke darüber nach.
Vielen Dank
mfg Hoschy
Entschuldigt bitte, aber ich weiß leider nicht ob ich hier richtig bin.
Ich habe keine Ahnung von Java und wollte mich mal hier an Euch wenden.
Ich suche ein Plugin was in Minecraft eine Welt wieder Zurücksetzt.
Das heißt: Ich besitze eine Lobby und dann kann man in verschiedene Welten gehen ( zum Beispiel Rush Maps ). Die Map befindet sich zu diesem Zeitpunkt im original Zustand. Dann wenn ein Team gewonnen hat ist die Map unbrauchbar. Jetzt bräuchte ich bitte ein Plugin was dafür sorgt, nachdem der letzte Spieler die Welt verlassen hat, dass die Welt sich automatisch zurücksetzt in den Original Zustand.
Ist das möglich?
Ich habe hier einen Code gefunden und kann damit aber nichts anfangen und daher frage ich ganz nett ob mir das bitte einer zurecht schneiden kann.
Code:
package de.janst.reset;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.logging.Logger;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.WorldCreator;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
public class Reset extends JavaPlugin {
public static final String name = "ResetWorld";
public static Logger log;
public void onEnable() {
log = this.getLogger();
if(!new File(name).exists()) {
reset();
}
Bukkit.createWorld(new WorldCreator(name));
}
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if(!(sender instanceof Player)) {
sender.sendMessage("Sorry, just for players ;/");
return true;
}
Player player = (Player) sender;
if(label.equalsIgnoreCase("tpw")) {
World resetworld = Bukkit.getWorld(name);
if(resetworld != null) {
player.teleport(resetworld.getSpawnLocation());
player.sendMessage("You were teleported");
return true;
}
else {
player.sendMessage("World does not exist");
return true;
}
}
else if(label.equalsIgnoreCase("reset")) {
reset();
player.sendMessage("World reset complete");
}
return false;
}
public void reset() {
log.info("World reset started");
World resetworld = Bukkit.getWorld(name);
if(resetworld != null) {
for(Player player : resetworld.getPlayers())
player.teleport(Bukkit.getWorlds().get(0).getSpawnLocation());
Bukkit.unloadWorld(name, false);
}
File file = new File(this.getDataFolder() + System.getProperty("file.separator") + name);
if(file != null) {
try {
copyDir(file, new File(name));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Bukkit.createWorld(new WorldCreator(name));
log.info("World reset successfully finished");
}
//http://www.java-forum.org/allgemeines/33129-verzeichnisse-durchsuchen-bearbeiten-auslesen.html
public void copyDir(File quelle, File ziel) throws FileNotFoundException, IOException {
File[] files = quelle.listFiles();
File newFile = null; // in diesem Objekt wird für jedes File der Zielpfad gespeichert.
// 1. Der alte Zielpfad
// 2. Das systemspezifische Pfadtrennungszeichen
// 3. Der Name des aktuellen Ordners/der aktuellen Datei
ziel.mkdirs(); // erstellt alle benötigten Ordner
if (files != null) {
for (int i = 0; i < files.length; i++) {
newFile = new File(ziel.getAbsolutePath() + System.getProperty("file.separator") + files[i].getName());
if (files[i].isDirectory()) {
copyDir(files[i], newFile);
}
else {
copyFile(files[i], newFile);
}
}
}
}
//http://www.java-forum.org/allgemeines/33129-verzeichnisse-durchsuchen-bearbeiten-auslesen.html
public void copyFile(File file, File ziel) throws FileNotFoundException, IOException {
BufferedInputStream in = new BufferedInputStream(new FileInputStream(file));
BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(ziel, true));
int bytes = 0;
while ((bytes = in.read()) != -1) { // Datei einlesen
out.write(bytes); // Datei schreiben
}
in.close();
out.close();
}
}
Wenn ich das richtig verstanden habe, dann hat das etwas mit diesem Teil hier zutun:
Code:
public void reset() {
log.info("World reset started");
World resetworld = Bukkit.getWorld(name);
if(resetworld != null) {
for(Player player : resetworld.getPlayers())
player.teleport(Bukkit.getWorlds().get(0).getSpawnLocation());
Bukkit.unloadWorld(name, false);
}
File file = new File(this.getDataFolder() + System.getProperty("file.separator") + name);
if(file != null) {
try {
copyDir(file, new File(name));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Bukkit.createWorld(new WorldCreator(name));
log.info("World reset successfully finished");
}
Ist bitte einer so nett und kann mir daraus etwas basteln?
Oder vielleicht hat auch jemand eine andere Idee wie man so etwas schreibt.
Wenn es etwas kosten soll, dann bitte mir den Preis vorher nennen und ich denke darüber nach.
Vielen Dank
mfg Hoschy