From 86c506dff27118f46a15e81fccd39d8830e8c368 Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Tue, 9 May 2017 20:32:45 +0300 Subject: [PATCH] =?UTF-8?q?MCSM:=20=D0=BA=D0=BE=D0=BC=D0=BF=D0=BE=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D1=82=20WebConsole?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/asys/mcsmanager/MCSM_WebModule.java | 14 +++++++++++ .../src/main/resources/components.js | 24 ++++++++++++++++++- mcserver-manager/src/main/resources/module.js | 2 ++ .../src/main/resources/moduleStyle.css | 11 +++++++++ 4 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 mcserver-manager/src/main/resources/moduleStyle.css diff --git a/mcserver-manager/src/main/java/asys/mcsmanager/MCSM_WebModule.java b/mcserver-manager/src/main/java/asys/mcsmanager/MCSM_WebModule.java index 95fde21..758a1cc 100644 --- a/mcserver-manager/src/main/java/asys/mcsmanager/MCSM_WebModule.java +++ b/mcserver-manager/src/main/java/asys/mcsmanager/MCSM_WebModule.java @@ -26,6 +26,7 @@ public class MCSM_WebModule extends WebModule { private final String MODULE_NAME = "mcsmanager"; private final String MODULE_URL = "/"+MODULE_NAME; private final Pattern URL_PATTERN_JS = Pattern.compile(MODULE_URL+"/(\\w+)\\.js"); + private final Pattern URL_PATTERN_CSS = Pattern.compile(MODULE_URL+"/(\\w+)\\.css"); private Manager manager; MCSM_WebModule(Manager manager) { @@ -66,6 +67,19 @@ public class MCSM_WebModule extends WebModule { this.sendContent(httpExchange, 0, stream); return true; } + + //FIXME дублирование кода + matcher = URL_PATTERN_CSS.matcher(urlPath); + if (matcher.find()) { + InputStream stream = getClass().getResourceAsStream("/" + matcher.group(1) + ".css"); + if (stream == null) { + this.sendHttpCode(httpExchange, 404, "not found"); + return true; + } + httpExchange.getResponseHeaders().add("Content-Type", "text/css;charset=utf-8"); + this.sendContent(httpExchange, 0, stream); + return true; + } } return false; diff --git a/mcserver-manager/src/main/resources/components.js b/mcserver-manager/src/main/resources/components.js index 40bd660..8b6cc4d 100644 --- a/mcserver-manager/src/main/resources/components.js +++ b/mcserver-manager/src/main/resources/components.js @@ -29,6 +29,10 @@ var NvLineChart = React.createClass({ this.d3ChartData.datum(this.props.datum); this.d3ChartData.transition().duration(500).call(this.chart); nv.utils.windowResize(this.chart.update); + }, + componentWillUnmount: function() { + var nvtooltip = document.querySelector('div[class~="nvtooltip"]'); + nvtooltip.parentElement.removeChild(nvtooltip) } }); @@ -58,6 +62,24 @@ var Tabs = React.createClass({ } }); +var WebConsole = React.createClass({ + render: function(){return( + ce('div', {id: 'webconsole'}, + ce('p', null, '[19:50:18 WARN]: **** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!'), + ce('p', null, '[19:50:18 WARN]: The server will make no attempt to authenticate usernames. Beware.'), + ce('p', null, '[19:50:18 WARN]: While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose.'), + ce('p', null, '[19:50:18 WARN]: To change this, set "online-mode" to "true" in the server.properties file.'), + ce('p', null, '[19:50:18 INFO]: **** Beginning UUID conversion, this may take A LONG time ****'), + ce('p', null, '[19:50:18 INFO]: Preparing level "voidworld"'), + ce('p', null, '[19:50:18 INFO]: -------- World Settings For [voidworld] --------'), + ce('p', null, '[19:50:18 INFO]: Arrow Despawn Rate: 1200'), + ce('p', null, '[19:50:18 INFO]: Item Merge Radius: 2.5'), + ce('p', null, '[19:50:18 INFO]: Item Despawn Rate: 6000'), + ce('p', null, '[19:50:18 INFO]: Allow Zombie Pigmen to spawn from portal blocks: true') + ) + )} +}); + var ServerInfo = React.createClass({ getInitialState: function(){return { title: null, @@ -77,7 +99,7 @@ var ServerInfo = React.createClass({ area: true, values: this.state.data }]}), - ce('p', null, 'fake console element') + ce(WebConsole) ) ) ) diff --git a/mcserver-manager/src/main/resources/module.js b/mcserver-manager/src/main/resources/module.js index 0b42a4b..c712f8c 100644 --- a/mcserver-manager/src/main/resources/module.js +++ b/mcserver-manager/src/main/resources/module.js @@ -60,6 +60,8 @@ var ContentModule = React.createClass({ function(){ _this.setState({nvScriptReady: -5}); console.error('d3 - error'); } ); + loadStyle("/mcsmanager/moduleStyle.css"); + this.requestServerList(); }, render: function(){ diff --git a/mcserver-manager/src/main/resources/moduleStyle.css b/mcserver-manager/src/main/resources/moduleStyle.css new file mode 100644 index 0000000..1c42f17 --- /dev/null +++ b/mcserver-manager/src/main/resources/moduleStyle.css @@ -0,0 +1,11 @@ +#webconsole { + background-color: #1e1e1e; + color: #eee; + height: 500px; + padding: 8px; + font-family: monospace; +} + +#webconsole p { + margin: 0; +} \ No newline at end of file