ServerPlugin MapReset probleme

Dieses Thema im Forum "Programmierung" wurde erstellt von BuiltWithStyle, 17. Januar 2016.

  1. BuiltWithStyle
    Offline

    BuiltWithStyle

    Registriert seit:
    12. Januar 2016
    Beiträge:
    3
    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.
     
    #1
  2. GPSforLEGENDS
    Offline

    GPSforLEGENDS

    Registriert seit:
    21. März 2014
    Beiträge:
    295
    Ort:
    Bürostuhl
    Minecraft:
    GPSforLEGENDS
  3. BuiltWithStyle
    Offline

    BuiltWithStyle

    Registriert seit:
    12. Januar 2016
    Beiträge:
    3
    Danke, diese Links haben mir gut geholfen, doch eine Frage bei der CopyWorld:


    Code (Text):
    1. 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 :()
     
    #3
  4. GPSforLEGENDS
    Offline

    GPSforLEGENDS

    Registriert seit:
    21. März 2014
    Beiträge:
    295
    Ort:
    Bürostuhl
    Minecraft:
    GPSforLEGENDS
    source ist englisch und bedeutet soviel wie Quelle oder Ursprung.
    target bedeutet Ziel.

    Um die Map wieder einzufügen kopierst du sie einfach wieder Zurück.
     
    #4
    jensIO gefällt das.
  5. BuiltWithStyle
    Offline

    BuiltWithStyle

    Registriert seit:
    12. Januar 2016
    Beiträge:
    3
    Code (Text):
    1.     @EventHandler
    2.     public void onBreak(BlockBreakEvent e) {
    3.         Block b = e.getBlock();
    4.         String block = b.getTypeId() + ":" + b.getData() + ":" + b.getWorld().getName()
    5.                 + ":" + b.getX() + ":" + b.getY() + ":" + b.getZ();
    6.        
    7.         CHANGES.add(block);
    8.     }
    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 (Text):
    1.     @EventHandler
    2.     public void onPlace(BlockPlaceEvent e) {
    3.         Block b = (Block) e.getBlockReplacedState();
    4.         String block = b.getTypeId() + ":" + b.getData() + ":" + b.getWorld().getName()
    5.                 + ":" + b.getX() + ":" + b.getY() + ":" + b.getZ();
    6.        
    7.         CHANGES.add(block);
    8.     }
    BlockBreakEvent (geht):

    restore: (Methode)

    Code (Text):
    1.     public static void restore() {
    2.         int blocks = 0;
    3.        
    4.         for(String b : CHANGES) {
    5.             String[] blockdata = b.split(":");
    6.            
    7.             int id = Integer.parseInt(blockdata[0]);
    8.             Byte data = Byte.parseByte(blockdata[1]);
    9.             World world = Bukkit.getWorld(blockdata[2]);
    10.             int x = Integer.parseInt(blockdata[3]);
    11.             int y = Integer.parseInt(blockdata[4]);
    12.             int z = Integer.parseInt(blockdata[5]);
    13.            
    14.             world.getBlockAt(x, y, z).setTypeId(id);
    15.             world.getBlockAt(x, y, z).setData(data);
    16.             blocks++;
    17.            
    18.         }
    19.         System.out.println("Es wurden " + blocks + " resetet");
    20.        
    21.     }
     
    #5
  6. 可愛い
    Offline

    可愛い

    Registriert seit:
    19. Mai 2014
    Beiträge:
    654
    Du kannst nicht einfach so die Map zurücksetzen, es gibt du viele Randfälle die du ebenfalls bedenken müsstest. DEUTLICH einfacher ist es die Map, wie schon vorgeschlagen, aus deinem Ordner zu kopieren und zu laden.
     
    #6
  7. McWizzardDev
    Offline

    McWizzardDev

    Registriert seit:
    7. Oktober 2015
    Beiträge:
    58
    #7