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

MapReset probleme

BuiltWithStyle

Minecrafter
Registriert
12 Januar 2016
Beiträge
3
Alter
36
Diamanten
300
Dieses Thema wurde zwar schon sehr oft erwähnt, aber trotz Googlen usw. habe ich es bisher noch nicht geschaft einen MapReset zu erstellen.

Ich habe schon versucht das AutoSave am start des Servers auszustellen, dies wahr aber dann doch sehr buggi.
Außerdem habe ich davon gehört das man die Map einfach beim Start kopiert und beim Stoppen wieder einfügt, aber wie dies geht, habe ich noch nicht
heraus gefunden

Ich suche nach einer guten Lösung, beim Start des Servers alles wieder zurückzusetzen.

Ich hoffe, das ihr mir helfen könnt.
 

BuiltWithStyle

Minecrafter
Registriert
12 Januar 2016
Beiträge
3
Alter
36
Diamanten
300
Danke, diese Links haben mir gut geholfen, doch eine Frage bei der CopyWorld:


Code:
File source, File target

Welches von den beiden ist der File, wo die Map dann gespeichert wird und welcher File ist der von der Map

Und es gibt keine Methode um die Map wieder einzufügen (Die war nicht dabei :()
 

BuiltWithStyle

Minecrafter
Registriert
12 Januar 2016
Beiträge
3
Alter
36
Diamanten
300
Code:
    @EventHandler
    public void onBreak(BlockBreakEvent e) {
        Block b = e.getBlock();
        String block = b.getTypeId() + ":" + b.getData() + ":" + b.getWorld().getName()
                + ":" + b.getX() + ":" + b.getY() + ":" + b.getZ();
       
        CHANGES.add(block);
    }
Ich habe dies doch jetzt anderes gemacht, ich speichere ab, wenn ein Block platziert, oder entfehrnt wird, und setze ihn dann zurück, das entfehrnen geht, aber die gesetzen Blöcke werden noch nicht zurück gesetzt


BlockPlaceEvent:

Code:
    @EventHandler
    public void onPlace(BlockPlaceEvent e) {
        Block b = (Block) e.getBlockReplacedState();
        String block = b.getTypeId() + ":" + b.getData() + ":" + b.getWorld().getName()
                + ":" + b.getX() + ":" + b.getY() + ":" + b.getZ();
       
        CHANGES.add(block);
    }

BlockBreakEvent (geht):

restore: (Methode)

Code:
    public static void restore() {
        int blocks = 0;
       
        for(String b : CHANGES) {
            String[] blockdata = b.split(":");
           
            int id = Integer.parseInt(blockdata[0]);
            Byte data = Byte.parseByte(blockdata[1]);
            World world = Bukkit.getWorld(blockdata[2]);
            int x = Integer.parseInt(blockdata[3]);
            int y = Integer.parseInt(blockdata[4]);
            int z = Integer.parseInt(blockdata[5]);
           
            world.getBlockAt(x, y, z).setTypeId(id);
            world.getBlockAt(x, y, z).setData(data);
            blocks++;
           
        }
        System.out.println("Es wurden " + blocks + " resetet");
       
    }
 
Oben