You are not logged in.

  • Login

[Bukkit-Plugin] Welt kopieren

Bitte besucht unser neues Forum unter https://forum.nitrado.net | Please visit our new Forum at https://forum.nitrado.net

Dear visitor, welcome to Nitrado.net Prepaid Gameserver Community-Support - Archiv. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

Bonesrib

User / Kunde

  • "Bonesrib" started this thread

Posts: 18

  • Send private message

1

Thursday, August 13th 2015, 10:07pm

Welt kopieren

Leute Ich habe wiedermal ein Problem

Ich möchte ein Game coden wo sich die welt nach serverstart immer neu resettet
Meine gedanken waren schon dabei das ich erstmal die welt copieren muss und nach serverstart wird diese immer geladen

Doch wie copiere ich eine welt sage ich mal in den ordner Backup?

Meine Idee war so:

Source code

1
								WorldCreator nw = new WorldCreator( "Backup/Baum" );								nw.copy( Bukkit.getServer().getWorld( "Baum") );								Bukkit.createWorld(nw);


oder auch nur so:

Source code

1
								WorldCreator nw = new WorldCreator( "Backup/Baum" );								nw.copy( Bukkit.getServer().getWorld( "Baum") );								nw.createWorld();

doch beides geht nicht
kann mir bitte jemand helfen einen funktionierenden code zu erstellen oder ist so net mir seinen code zur verfügung zu stellen?
Gruß Bonesrib

Gebauer_01

User / Kunde

Posts: 2,304

  • Send private message

2

Friday, August 14th 2015, 1:14am

Wenn du willst, dass sich die Welt beim Server ausschalten zurücksetzt, kannst du einfach das automatische Speichern der Welt deaktivieren.

Ansonsten kannst du den Welt Ordner einfach mit

Files.copy(from, to);

In beispielsweise einen Unterordnet kopieren.

Bonesrib

User / Kunde

  • "Bonesrib" started this thread

Posts: 18

  • Send private message

3

Monday, August 17th 2015, 2:58pm

kannst du mir da sagen wie ich den ganzen weltordner copieren kann bzw falls es einfacher ist ne datei zipe und diese kopiere
und wie ich sie kopiere und entzipe?
stehe momentan etwasd auf dem schlauch

MrEllo

User / Kunde

Posts: 11

  • Send private message

4

Monday, August 17th 2015, 3:13pm

Hier mal ein Paar nützliche Funktionen dafür:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
	//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; 
			ziel.mkdirs();	    
			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);
					}
				}
			}
		}
		
	
	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) { 
			out.write(bytes); 
		}
		in.close();
		out.close();
	}


Youtube-Kanal: MrEllo

Bukkit/Spigot Tutorials


LostBattle

User / Kunde

Posts: 388

  • Send private message

5

Monday, August 17th 2015, 3:29pm

Hier mal ein Paar nützliche Funktionen dafür:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
	//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; 
			ziel.mkdirs();	    
			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);
					}
				}
			}
		}
		
	
	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) { 
			out.write(bytes); 
		}
		in.close();
		out.close();
	}

Nimm doch einfach die FileUtils Class. Dort gibt es schon jede Methode die man braucht. Bsp: FileUtils.copyDir();

Bitte besucht unser neues Forum unter https://forum.nitrado.net| Please visit our new Forum at https://forum.nitrado.net

Similar threads