Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package de.Panakotta00.Lobby.MiniGames;
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.OutputStream;
- import java.net.Socket;
- import java.nio.CharBuffer;
- import java.util.List;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import de.Panakotta00.Lobby.Lobby;
- public class MG_Server implements Runnable {
- Lobby main;
- MG_Sign sign;
- int id;
- Thread thread;
- boolean loop = true;
- String type;
- String[] arenas;
- public File dir;
- public Socket socket;
- public MG_Server(Lobby main, MG_Controller controller, MG_Sign sign, int id, String type, String[] arenas) {
- this.main = main;
- this.sign = sign;
- this.id = id;
- this.type = type;
- this.arenas = arenas;
- if (controller.serverController.serverInLoad.size() < controller.serverController.max_loads) {
- controller.serverController.serverInLoad.put(this.id, this);
- this.load();
- } else {
- controller.serverController.serverToLoad.put(this.id, this);
- }
- }
- public void load() {
- File template = new File(main.cfg.getString("Server-System.Templates." + type));
- File newServer = new File(main.cfg.getString("Server-System.ServerFolder." + type) + "\\" + id);
- try {
- copyFolder(template, newServer);
- File properties = new File(main.cfg.getString("Server-System.ServerFolder." + type) + "\\" + id + "\\server.properties");
- OutputStream out = new FileOutputStream(properties, true);
- out.write(("server-port=1111"+id+"\n").getBytes());
- out.write(("server-ip=localhost").getBytes());
- out.close();
- Runtime.getRuntime().exec("cmd /c start cmd.exe /k \"start.bat", null, newServer);
- main.ss.createServer(id, String.valueOf(Bukkit.getIp().intern()), Integer.valueOf("1111" + id));
- dir = newServer;
- sign.setData("["+type+"]", ChatColor.GRAY + "Server lädt...", "", "");
- System.out.println("Der Server mit der ID " + id + " wurde erstellt!");
- } catch (IOException e) {
- e.printStackTrace();
- System.out.println("Der Server mit der ID " + id + " konnte nicht geladen werden!");
- }
- }
- @Override
- public void run() {
- while (loop) {
- try {
- BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
- System.out.println("ok");
- System.out.println(in.readLine().intern());
- System.out.println("ok");
- if (in.readLine().intern().equalsIgnoreCase("updateSign".intern())) {
- System.out.println("ok");
- int id = Integer.valueOf(in.readLine().intern());
- String[] lines = {in.readLine().intern(), in.readLine().intern(), in.readLine().intern(), in.readLine().intern()};
- main.mg_system.signs.get(id).setData(lines[0], lines[1], lines[2], lines[3]);
- }
- } catch (IOException e) {
- e.printStackTrace();
- if (socket.isClosed()) {
- this.stop();
- }
- }
- }
- this.stop();
- }
- @SuppressWarnings("deprecation")
- public void stop() {
- if (thread != null && thread.isAlive()) {
- thread.stop();
- }
- if (loop) {
- loop = false;
- }
- }
- private void copyFolder(File src, File dest) throws IOException{
- if(src.isDirectory()) {
- if(!dest.exists()) {
- dest.mkdir();
- }
- String files[] = src.list();
- for (String file : files) {
- File srcFile = new File(src, file);
- File destFile = new File(dest, file);
- copyFolder(srcFile,destFile);
- }
- } else {
- InputStream in = new FileInputStream(src);
- OutputStream out = new FileOutputStream(dest);
- byte[] buffer = new byte[1024];
- int length;
- while ((length = in.read(buffer)) > 0) {
- out.write(buffer, 0, length);
- }
- in.close();
- out.close();
- }
- }
- }
Add Comment
Please, Sign In to add comment