├── .classpath
├── .gitignore
├── .project
├── .settings
├── org.eclipse.jdt.core.prefs
└── org.eclipse.jdt.launching.prefs
├── README.md
├── lib
├── commons-lang3-3.7.jar
├── commons-lang3-LICENSE.txt
├── ini4j-0.5.4.jar
├── ini4j-LICENSE.txt
├── jbcrypt-0.4.jar
├── jbcrypt-LICENSE.txt
├── nanohttpd-2.3.1.jar
└── nanohttpd-LICENSE.txt
├── screenshots
├── create_server_form.png
├── server_console.png
├── server_files.png
└── server_list.png
└── src
└── oniicode
└── craftmgr
├── Lang.java
├── MCServer.java
├── Main.java
├── Util.java
├── html
├── assets
│ ├── FontAwesome.otf
│ ├── bootstrap.min.css
│ ├── bootstrap.min.js
│ ├── dargen-mgmt.js
│ ├── font-awesome.min.css
│ ├── fontawesome-webfont.eot
│ ├── fontawesome-webfont.svg
│ ├── fontawesome-webfont.ttf
│ ├── fontawesome-webfont.woff
│ ├── fontawesome-webfont.woff2
│ ├── jquery-3.2.1.min.js
│ ├── jquery-3.2.1.slim.min.js
│ ├── notify.min.js
│ ├── popper.min.js
│ └── style.css
├── login.html
├── server_backups.html
├── server_backups_entry.html
├── server_config.html
├── server_config_entry.html
├── server_console.html
├── server_files.html
├── server_files_entry.html
├── server_files_entry_icon_file.html
├── server_files_entry_icon_folder.html
├── serverlist.html
└── wi_root.html
├── interfaces
├── CLI.java
├── HTTPD.java
└── SQ.java
└── lang
├── de_DE.lang
├── en_GB.lang
└── en_US.lang
/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
57 | | {lang:backups_date} | 58 |{lang:backups_size} | 59 |{lang:backups_desc} | 60 |61 | |
44 | | {lang:f_name} | 45 |{lang:f_date} | 46 |{lang:f_type} | 47 |{lang:f_size} | 48 |
# | 68 |{lang:server_port} | 69 |{lang:server_status} | 70 |{lang:server_desc} | 71 |72 | |
404: Server #"+id+" nicht gefunden.
404: Server #"+id+" nicht gefunden.
�bernommen!
"); 357 | else 358 | body = body.replace("{SUCCESS}", ""); 359 | }else if(parms.containsKey("files")){ 360 | body = this.parseServerPlaceholders(this.getHtml("server_files"), srv); 361 | String path = ""; 362 | if(parms.get("files") != null && StringUtils.countMatches(parms.get("files"), "..")<=0) { 363 | path = parms.get("files"); 364 | } 365 | if(path.startsWith("/") || path.startsWith("\\")) { 366 | path = path.substring(1); 367 | } 368 | if(path.endsWith("/") || path.endsWith("\\")) { 369 | path = path.substring(0, path.length() -1); 370 | } 371 | File p = srv.getFile(path); 372 | if(p.exists()) { 373 | if(p.isDirectory()) { 374 | String s = ""; 375 | for(File f : p.listFiles()) { 376 | String st; 377 | if(f.isDirectory()) { 378 | st = this.parseServerPlaceholders( 379 | this.getHtml("server_files_entry") 380 | .replace("{I}", this.getHtml("server_files_entry_icon_folder")) 381 | .replace("{NAME}", ""+f.getName()+"") 382 | .replace("{DATE}", "") 383 | .replace("{SIZE}", f.listFiles().length + " Elemente") 384 | .replace("{TYPE}", "Ordner") 385 | , srv 386 | ); 387 | }else { 388 | st = this.parseServerPlaceholders( 389 | this.getHtml("server_files_entry") 390 | .replace("{I}", this.getHtml("server_files_entry_icon_file")) 391 | .replace("{NAME}", f.getName()) 392 | .replace("{DATE}", Util.getDate(new Date(f.lastModified()))) 393 | .replace("{SIZE}", Util.readableFileSize(f.length())) 394 | , srv 395 | ); 396 | try { 397 | String t = Files.probeContentType(f.toPath()); 398 | if(t == null) 399 | t = "N/A"; 400 | st = st.replace("{TYPE}", t); 401 | } catch (IOException e) { 402 | st = st.replace("{TYPE}", "Fehler: "+e.getMessage()+""); 403 | e.printStackTrace(); 404 | continue; 405 | } 406 | } 407 | s+=st; 408 | } 409 | body = body.replace("{S_FILES}", s); 410 | }else { 411 | body = body.replace("{S_FILES}", "File Editor noch in Arbeit"); 412 | } 413 | String pp = ""; 414 | pp +="404: Not found. Zurück
"); 427 | } 428 | 429 | 430 | 431 | }else if(parms.containsKey("backups")){ 432 | String s = ""; 433 | for(String ss : srv.getBackups()) { 434 | File f = new File(srv.getDir().getPath() + File.separator + "backups"); 435 | s += this.parseServerPlaceholders(this.getHtml("server_backups_entry").replace("{DATE}", Util.getDate(new Date(f.lastModified()))).replace("{NAME}", ss.replace(".zip", "")).replace("{SIZE}", Util.readableFileSize(f.length())), srv); 436 | } 437 | body = this.parseServerPlaceholders(this.getHtml("server_backups"), srv).replace("{S_BACKUPS}", s); 438 | }else { 439 | body = this.parseServerPlaceholders(this.getHtml("server_console"), srv); 440 | } 441 | 442 | }catch(NumberFormatException e) { 443 | return newFixedLengthResponse(Response.Status.BAD_REQUEST, MIME_PLAINTEXT, Response.Status.BAD_REQUEST.getDescription()); 444 | } 445 | 446 | }else { 447 | String s = ""; 448 | File f = new File("templates"); 449 | for(String l : f.list()) 450 | s += ""; 451 | 452 | body = this.getHtml("serverlist").replaceAll("/?start=[ID]
/?=stop=[ID]
/?=kill=[ID]
/?=delete=[ID]
/?=cmd=[ID]&com=[COMMAND]
/?=console=[ID]
/?=create=[PORT]&template=[TEMPLATE]&memory=[RAM]&autostart=[true/false]&desc=[BESCHREIBUNG..]
{ver} | 590 | *Systemversion | 591 | *
{app} | 594 | *Name dieses Systems | 595 | *
{loginformid} | 598 | *Name/ID des INPUT-Tags wie er im HTML-Template sein soll | 599 | *