SubServers Console v2.12.1a

This commit is contained in:
ME1312 2017-08-30 20:12:26 -04:00
parent b6ff93a37f
commit f2f01576df
36 changed files with 1645 additions and 124 deletions

View File

@ -4,8 +4,15 @@
#!/usr/bin/env bash
if [ -z "$1" ]
then
echo ERROR: No BungeeCord File Supplied
exit 1
if [ -z "$2" ]
then
echo "SubServers Library Patcher: Combines BungeeCord and SubServers.Bungee/SubServers.Sync into one jar file"
echo "Usage: SubServers.Bungee.Patcher.sh <BungeeCord.jar> <SubServers.jar>"
exit 0
else
echo ERROR: No BungeeCord File Supplied
exit 1
fi
fi
if [ ! -f "$1" ]
then
@ -26,7 +33,6 @@ if [ -d "Buildtools" ]; then
rm -Rf Buildtools
fi
mkdir BuildTools
mkdir BuildTools/Vanilla.jar
mkdir BuildTools/Modded.jar
cd BuildTools/Modded.jar
echo ">> Extracting $1..."
@ -39,6 +45,7 @@ if [ $retvala -eq 0 ]
if [ -f "LICENSE" ]; then
rm -Rf LICENSE
fi
mkdir ../Vanilla.jar
cd ../Vanilla.jar
echo ">> Extracting $2..."
jar xvf ../../$2; retvalb=$?;
@ -47,8 +54,12 @@ if [ $retvala -eq 0 ]
echo ">> Writing Changes..."
yes | cp -rf . ../Modded.jar
printf "\n " >> META-INF/MANIFEST.MF
if [ -f "MODIFICATIONS" ]; then
mv -f MODIFICATIONS ../MODIFICATIONS
else
printf "# SubServers.Bungee.Patcher generated difference list (may be empty if git is not installed)\n#\n> git --no-pager diff --no-index --name-status BuildTools/Vanilla.jar BuildTools/Modded.jar\n" > ../MODIFICATIONS
fi
cd ../
printf "# SubServers.Bungee.Patcher generated difference list (may be empty if git is not installed)\n#\n> git --no-pager diff --no-index --name-status BuildTools/Vanilla.jar BuildTools/Modded.jar\n" > MODIFICATIONS
git --no-pager diff --no-index --name-status Vanilla.jar Modded.jar | sed -e "s/\tVanilla.jar\//\t\//" -e "s/\tModded.jar\//\t\//" >> MODIFICATIONS
mv -f MODIFICATIONS Modded.jar
cd Modded.jar

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -96,6 +96,7 @@
<li><a href="net/ME1312/SubServers/Bungee/Host/SubServer.html" title="interface in net.ME1312.SubServers.Bungee.Host" target="classFrame"><span class="interfaceName">SubServer</span></a></li>
<li><a href="net/ME1312/SubServers/Bungee/Host/SubServer.LoggedCommand.html" title="class in net.ME1312.SubServers.Bungee.Host" target="classFrame">SubServer.LoggedCommand</a></li>
<li><a href="net/ME1312/SubServers/Bungee/Host/SubServerContainer.html" title="class in net.ME1312.SubServers.Bungee.Host" target="classFrame">SubServerContainer</a></li>
<li><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host" target="classFrame">SubServerController</a></li>
<li><a href="net/ME1312/SubServers/Bungee/Event/SubStartEvent.html" title="class in net.ME1312.SubServers.Bungee.Event" target="classFrame">SubStartEvent</a></li>
<li><a href="net/ME1312/SubServers/Bungee/Event/SubStopEvent.html" title="class in net.ME1312.SubServers.Bungee.Event" target="classFrame">SubStopEvent</a></li>
<li><a href="net/ME1312/SubServers/Bungee/Event/SubStoppedEvent.html" title="class in net.ME1312.SubServers.Bungee.Event" target="classFrame">SubStoppedEvent</a></li>

View File

@ -96,6 +96,7 @@
<li><a href="net/ME1312/SubServers/Bungee/Host/SubServer.html" title="interface in net.ME1312.SubServers.Bungee.Host"><span class="interfaceName">SubServer</span></a></li>
<li><a href="net/ME1312/SubServers/Bungee/Host/SubServer.LoggedCommand.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServer.LoggedCommand</a></li>
<li><a href="net/ME1312/SubServers/Bungee/Host/SubServerContainer.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerContainer</a></li>
<li><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></li>
<li><a href="net/ME1312/SubServers/Bungee/Event/SubStartEvent.html" title="class in net.ME1312.SubServers.Bungee.Event">SubStartEvent</a></li>
<li><a href="net/ME1312/SubServers/Bungee/Event/SubStopEvent.html" title="class in net.ME1312.SubServers.Bungee.Event">SubStopEvent</a></li>
<li><a href="net/ME1312/SubServers/Bungee/Event/SubStoppedEvent.html" title="class in net.ME1312.SubServers.Bungee.Event">SubStoppedEvent</a></li>

View File

@ -308,6 +308,14 @@
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerContainer.html#command-java.lang.String-">command(String)</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerContainer.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerContainer</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#command-java.util.UUID-java.lang.String-">command(UUID, String)</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">Commands the Server</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#command-java.lang.String-">command(String)</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">Commands the Server</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Library/Version/Version.html#compare-net.ME1312.SubServers.Bungee.Library.Version.Version-net.ME1312.SubServers.Bungee.Library.Version.Version-">compare(Version, Version)</a></span> - Static method in class net.ME1312.SubServers.Bungee.Library.Version.<a href="net/ME1312/SubServers/Bungee/Library/Version/Version.html" title="class in net.ME1312.SubServers.Bungee.Library.Version">Version</a></dt>
<dd>
<div class="block">Compare Versions</div>
@ -426,6 +434,14 @@
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerContainer.html#edit-net.ME1312.SubServers.Bungee.Library.Config.YAMLSection-">edit(YAMLSection)</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerContainer.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerContainer</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#edit-java.util.UUID-net.ME1312.SubServers.Bungee.Library.Config.YAMLSection-">edit(UUID, YAMLSection)</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">Edits the Server</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#edit-net.ME1312.SubServers.Bungee.Library.Config.YAMLSection-">edit(YAMLSection)</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">Edits the Server</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Network/AES.html#encrypt-int-java.lang.String-java.io.InputStream-java.io.OutputStream-">encrypt(int, String, InputStream, OutputStream)</a></span> - Static method in class net.ME1312.SubServers.Bungee.Network.<a href="net/ME1312/SubServers/Bungee/Network/AES.html" title="class in net.ME1312.SubServers.Bungee.Network">AES</a></dt>
<dd>
<div class="block">Encrypts a stream of data.</div>
@ -688,6 +704,10 @@
<dd>
<div class="block">Generate JSON Packet Contents</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#get--">get()</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">Get the SubServer that is being controlled</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Library/Config/YAMLConfig.html#get--">get()</a></span> - Method in class net.ME1312.SubServers.Bungee.Library.Config.<a href="net/ME1312/SubServers/Bungee/Library/Config/YAMLConfig.html" title="class in net.ME1312.SubServers.Bungee.Library.Config">YAMLConfig</a></dt>
<dd>
<div class="block">Get Config Contents</div>
@ -810,6 +830,10 @@
<dd>
<div class="block">Gets all the commands that were sent to this Server successfully</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#getCommandHistory--">getCommandHistory()</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">Gets all the commands that were sent to this Server successfully</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubCreator.ServerTemplate.html#getConfigOptions--">getConfigOptions()</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubCreator.ServerTemplate.html" title="class in net.ME1312.SubServers.Bungee.Host">SubCreator.ServerTemplate</a></dt>
<dd>
<div class="block">Get the Configuration Options for this Template</div>
@ -894,6 +918,10 @@
<dd>
<div class="block">Get the Server's Executable String</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#getExecutable--">getExecutable()</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">Get the Server's Executable String</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/External/ExternalSubLogger.html#getExternalAddress--">getExternalAddress()</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.External.<a href="net/ME1312/SubServers/Bungee/Host/External/ExternalSubLogger.html" title="class in net.ME1312.SubServers.Bungee.Host.External">ExternalSubLogger</a></dt>
<dd>
<div class="block">Get the External Logger Address</div>
@ -1002,6 +1030,10 @@
<dd>
<div class="block">Grabs the Host of the Server</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#getHost--">getHost()</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">Grabs the Host of the Server</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/SubAPI.html#getHost-java.lang.String-">getHost(String)</a></span> - Method in class net.ME1312.SubServers.Bungee.<a href="net/ME1312/SubServers/Bungee/SubAPI.html" title="class in net.ME1312.SubServers.Bungee">SubAPI</a></dt>
<dd>
<div class="block">Gets a Host</div>
@ -1102,6 +1134,10 @@
<dd>
<div class="block">Get Process Logger</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#getLogger--">getLogger()</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">Get Process Logger</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Library/Config/YAMLSection.html#getLong-java.lang.String-">getLong(String)</a></span> - Method in class net.ME1312.SubServers.Bungee.Library.Config.<a href="net/ME1312/SubServers/Bungee/Library/Config/YAMLSection.html" title="class in net.ME1312.SubServers.Bungee.Library.Config">YAMLSection</a></dt>
<dd>
<div class="block">Get a Long by Handle</div>
@ -1200,6 +1236,10 @@
<dd>
<div class="block">Get the Server Directory Path</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#getPath--">getPath()</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">Get the Server Directory Path</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Event/SubAddHostEvent.html#getPlayer--">getPlayer()</a></span> - Method in class net.ME1312.SubServers.Bungee.Event.<a href="net/ME1312/SubServers/Bungee/Event/SubAddHostEvent.html" title="class in net.ME1312.SubServers.Bungee.Event">SubAddHostEvent</a></dt>
<dd>
<div class="block">Gets the player that triggered the Event</div>
@ -1376,6 +1416,10 @@
<dd>
<div class="block">Grab the Command to Stop the Server</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#getStopCommand--">getStopCommand()</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">Grab the Command to Stop the Server</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Library/Config/YAMLSection.html#getString-java.lang.String-">getString(String)</a></span> - Method in class net.ME1312.SubServers.Bungee.Library.Config.<a href="net/ME1312/SubServers/Bungee/Library/Config/YAMLSection.html" title="class in net.ME1312.SubServers.Bungee.Library.Config">YAMLSection</a></dt>
<dd>
<div class="block">Get a String by Handle</div>
@ -1736,6 +1780,10 @@
<dd>
<div class="block">If the Server is Enabled</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#isEnabled--">isEnabled()</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">If the Server is Enabled</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Library/Util.html#isException-net.ME1312.SubServers.Bungee.Library.Util.ExceptionRunnable-">isException(Util.ExceptionRunnable)</a></span> - Static method in class net.ME1312.SubServers.Bungee.Library.<a href="net/ME1312/SubServers/Bungee/Library/Util.html" title="class in net.ME1312.SubServers.Bungee.Library">Util</a></dt>
<dd>
<div class="block">Determines if an Exception will occur</div>
@ -1794,6 +1842,10 @@
<dd>
<div class="block">If the Server is Logging</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#isLogging--">isLogging()</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">If the Server is Logging</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Library/Config/YAMLSection.html#isLong-java.lang.String-">isLong(String)</a></span> - Method in class net.ME1312.SubServers.Bungee.Library.Config.<a href="net/ME1312/SubServers/Bungee/Library/Config/YAMLSection.html" title="class in net.ME1312.SubServers.Bungee.Library.Config">YAMLSection</a></dt>
<dd>
<div class="block">Check if object is a Long by Handle</div>
@ -1828,6 +1880,10 @@
<dd>
<div class="block">If the Server is Running</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#isRunning--">isRunning()</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">If the Server is Running</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Library/Config/YAMLSection.html#isSection-java.lang.String-">isSection(String)</a></span> - Method in class net.ME1312.SubServers.Bungee.Library.Config.<a href="net/ME1312/SubServers/Bungee/Library/Config/YAMLSection.html" title="class in net.ME1312.SubServers.Bungee.Library.Config">YAMLSection</a></dt>
<dd>
<div class="block">Check if object is a YAML Section by Handle</div>
@ -1852,6 +1908,10 @@
<dd>
<div class="block">If the Server is Temporary</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#isTemporary--">isTemporary()</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">If the Server is Temporary</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Library/Config/YAMLSection.html#isUUID-java.lang.String-">isUUID(String)</a></span> - Method in class net.ME1312.SubServers.Bungee.Library.Config.<a href="net/ME1312/SubServers/Bungee/Library/Config/YAMLSection.html" title="class in net.ME1312.SubServers.Bungee.Library.Config">YAMLSection</a></dt>
<dd>
<div class="block">Check if object is a UUID by Handle</div>
@ -2508,6 +2568,10 @@
<dd>
<div class="block">Set if the Server will Auto Restart on unexpected shutdowns</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#setAutoRestart-boolean-">setAutoRestart(boolean)</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">Set if the Server will Auto Restart on unexpected shutdowns</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Event/SubAddHostEvent.html#setCancelled-boolean-">setCancelled(boolean)</a></span> - Method in class net.ME1312.SubServers.Bungee.Event.<a href="net/ME1312/SubServers/Bungee/Event/SubAddHostEvent.html" title="class in net.ME1312.SubServers.Bungee.Event">SubAddHostEvent</a></dt>
<dd>
<div class="block">Sets the Cancelled Status</div>
@ -2586,6 +2650,10 @@
<dd>
<div class="block">Set if the Server is Enabled</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#setEnabled-boolean-">setEnabled(boolean)</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">Set if the Server is Enabled</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Network/Client.html#setHandler-net.ME1312.SubServers.Bungee.Network.ClientHandler-">setHandler(ClientHandler)</a></span> - Method in class net.ME1312.SubServers.Bungee.Network.<a href="net/ME1312/SubServers/Bungee/Network/Client.html" title="class in net.ME1312.SubServers.Bungee.Network">Client</a></dt>
<dd>
<div class="block">Sets the Handler</div>
@ -2612,6 +2680,10 @@
<dd>
<div class="block">Set if the Server is Logging</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#setLogging-boolean-">setLogging(boolean)</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">Set if the Server is Logging</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/Server.html#setMotd-java.lang.String-">setMotd(String)</a></span> - Method in interface net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/Server.html" title="interface in net.ME1312.SubServers.Bungee.Host">Server</a></dt>
<dd>
<div class="block">Sets the MOTD of the Server</div>
@ -2632,6 +2704,10 @@
<dd>
<div class="block">Set the Command that Stops the Server</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#setStopCommand-java.lang.String-">setStopCommand(String)</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">Set the Command that Stops the Server</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/External/ExternalHost.html#setSubData-net.ME1312.SubServers.Bungee.Network.Client-">setSubData(Client)</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.External.<a href="net/ME1312/SubServers/Bungee/Host/External/ExternalHost.html" title="class in net.ME1312.SubServers.Bungee.Host.External">ExternalHost</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/ServerContainer.html#setSubData-net.ME1312.SubServers.Bungee.Network.Client-">setSubData(Client)</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/ServerContainer.html" title="class in net.ME1312.SubServers.Bungee.Host">ServerContainer</a></dt>
@ -2652,6 +2728,10 @@
<dd>
<div class="block">Set If the Server is Temporary (will start server if not running)</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#setTemporary-boolean-">setTemporary(boolean)</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">Set If the Server is Temporary (will start server if not running)</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Event/SubCreateEvent.html#setVersion-net.ME1312.SubServers.Bungee.Library.Version.Version-">setVersion(Version)</a></span> - Method in class net.ME1312.SubServers.Bungee.Event.<a href="net/ME1312/SubServers/Bungee/Event/SubCreateEvent.html" title="class in net.ME1312.SubServers.Bungee.Event">SubCreateEvent</a></dt>
<dd>
<div class="block">Set the Version the Server will use</div>
@ -2690,6 +2770,14 @@
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerContainer.html#start--">start()</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerContainer.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerContainer</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#start-java.util.UUID-">start(UUID)</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">Starts the Server</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#start--">start()</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">Starts the Server</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/SubPlugin.html#startListeners--">startListeners()</a></span> - Method in class net.ME1312.SubServers.Bungee.<a href="net/ME1312/SubServers/Bungee/SubPlugin.html" title="class in net.ME1312.SubServers.Bungee">SubPlugin</a></dt>
<dd>
<div class="block">Load Hosts, Servers, SubServers, and SubData Direct</div>
@ -2728,6 +2816,14 @@
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerContainer.html#stop--">stop()</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerContainer.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerContainer</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#stop-java.util.UUID-">stop(UUID)</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">Stops the Server</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#stop--">stop()</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">Stops the Server</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/SubPlugin.html#stopListeners--">stopListeners()</a></span> - Method in class net.ME1312.SubServers.Bungee.<a href="net/ME1312/SubServers/Bungee/SubPlugin.html" title="class in net.ME1312.SubServers.Bungee">SubPlugin</a></dt>
<dd>
<div class="block">Reset all changes made by startListeners</div>
@ -2874,6 +2970,14 @@
<dd>
<div class="block">Creates a SubServer</div>
</dd>
<dt><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host"><span class="typeNameLink">SubServerController</span></a> - Class in <a href="net/ME1312/SubServers/Bungee/Host/package-summary.html">net.ME1312.SubServers.Bungee.Host</a></dt>
<dd>
<div class="block">API-Safe SubServer Layout Class</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#SubServerController-net.ME1312.SubServers.Bungee.Host.Host-java.lang.String-int-java.lang.String-boolean-boolean-">SubServerController(Host, String, int, String, boolean, boolean)</a></span> - Constructor for class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">Creates a SubServer</div>
</dd>
<dt><a href="net/ME1312/SubServers/Bungee/Event/SubStartEvent.html" title="class in net.ME1312.SubServers.Bungee.Event"><span class="typeNameLink">SubStartEvent</span></a> - Class in <a href="net/ME1312/SubServers/Bungee/Event/package-summary.html">net.ME1312.SubServers.Bungee.Event</a></dt>
<dd>
<div class="block">Server Start Event</div>
@ -2948,6 +3052,14 @@
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerContainer.html#terminate--">terminate()</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerContainer.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerContainer</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#terminate-java.util.UUID-">terminate(UUID)</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">Terminates the Server</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#terminate--">terminate()</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">Terminates the Server</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/Executable.html#toFile--">toFile()</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/Executable.html" title="class in net.ME1312.SubServers.Bungee.Host">Executable</a></dt>
<dd>
<div class="block">Get Executable File</div>
@ -3125,6 +3237,10 @@ the order they are declared.</div>
<dd>
<div class="block">Waits for the Server to Stop</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#waitFor--">waitFor()</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">Waits for the Server to Stop</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/External/ExternalSubServer.html#willAutoRestart--">willAutoRestart()</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.External.<a href="net/ME1312/SubServers/Bungee/Host/External/ExternalSubServer.html" title="class in net.ME1312.SubServers.Bungee.Host.External">ExternalSubServer</a></dt>
<dd>&nbsp;</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/Internal/InternalSubServer.html#willAutoRestart--">willAutoRestart()</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.Internal.<a href="net/ME1312/SubServers/Bungee/Host/Internal/InternalSubServer.html" title="class in net.ME1312.SubServers.Bungee.Host.Internal">InternalSubServer</a></dt>
@ -3133,6 +3249,10 @@ the order they are declared.</div>
<dd>
<div class="block">If the Server will Auto Restart on unexpected shutdowns</div>
</dd>
<dt><span class="memberNameLink"><a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html#willAutoRestart--">willAutoRestart()</a></span> - Method in class net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></dt>
<dd>
<div class="block">If the Server will Auto Restart on unexpected shutdowns</div>
</dd>
</dl>
<a name="I:Y">
<!-- -->

View File

@ -48,7 +48,7 @@ var activeTableTab = "activeTableTab";
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServer.LoggedCommand.html" title="class in net.ME1312.SubServers.Bungee.Host"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
<li><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?net/ME1312/SubServers/Bungee/Host/SubServerContainer.html" target="_top">Frames</a></li>
@ -572,7 +572,7 @@ implements <a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServer.h
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServer.LoggedCommand.html" title="class in net.ME1312.SubServers.Bungee.Host"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
<li><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?net/ME1312/SubServers/Bungee/Host/SubServerContainer.html" target="_top">Frames</a></li>

View File

@ -0,0 +1,857 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<title>SubServerController (SubServers.Bungee)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="SubServerController (SubServers.Bungee)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":6,"i2":6,"i3":10,"i4":10,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":10,"i21":6,"i22":10,"i23":6,"i24":10,"i25":6,"i26":6,"i27":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerContainer.html" title="class in net.ME1312.SubServers.Bungee.Host"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?net/ME1312/SubServers/Bungee/Host/SubServerController.html" target="_top">Frames</a></li>
<li><a href="SubServerController.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">net.ME1312.SubServers.Bungee.Host</div>
<h2 title="Class SubServerController" class="title">Class SubServerController</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>net.ME1312.SubServers.Bungee.Host.SubServerController</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">SubServerController</span>
extends java.lang.Object</pre>
<div class="block">API-Safe SubServer Layout Class</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#SubServerController-net.ME1312.SubServers.Bungee.Host.Host-java.lang.String-int-java.lang.String-boolean-boolean-">SubServerController</a></span>(<a href="../../../../../net/ME1312/SubServers/Bungee/Host/Host.html" title="class in net.ME1312.SubServers.Bungee.Host">Host</a>&nbsp;host,
java.lang.String&nbsp;name,
int&nbsp;port,
java.lang.String&nbsp;motd,
boolean&nbsp;hidden,
boolean&nbsp;restricted)</code>
<div class="block">Creates a SubServer</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#command-java.lang.String-">command</a></span>(java.lang.String&nbsp;command)</code>
<div class="block">Commands the Server</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#command-java.util.UUID-java.lang.String-">command</a></span>(java.util.UUID&nbsp;player,
java.lang.String&nbsp;command)</code>
<div class="block">Commands the Server</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>abstract int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#edit-java.util.UUID-net.ME1312.SubServers.Bungee.Library.Config.YAMLSection-">edit</a></span>(java.util.UUID&nbsp;player,
<a href="../../../../../net/ME1312/SubServers/Bungee/Library/Config/YAMLSection.html" title="class in net.ME1312.SubServers.Bungee.Library.Config">YAMLSection</a>&nbsp;edit)</code>
<div class="block">Edits the Server</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#edit-net.ME1312.SubServers.Bungee.Library.Config.YAMLSection-">edit</a></span>(<a href="../../../../../net/ME1312/SubServers/Bungee/Library/Config/YAMLSection.html" title="class in net.ME1312.SubServers.Bungee.Library.Config">YAMLSection</a>&nbsp;edit)</code>
<div class="block">Edits the Server</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServer.html" title="interface in net.ME1312.SubServers.Bungee.Host">SubServer</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#get--">get</a></span>()</code>
<div class="block">Get the SubServer that is being controlled</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>abstract java.util.LinkedList&lt;<a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServer.LoggedCommand.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServer.LoggedCommand</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#getCommandHistory--">getCommandHistory</a></span>()</code>
<div class="block">Gets all the commands that were sent to this Server successfully</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../../net/ME1312/SubServers/Bungee/Host/Executable.html" title="class in net.ME1312.SubServers.Bungee.Host">Executable</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#getExecutable--">getExecutable</a></span>()</code>
<div class="block">Get the Server's Executable String</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../../net/ME1312/SubServers/Bungee/Host/Host.html" title="class in net.ME1312.SubServers.Bungee.Host">Host</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#getHost--">getHost</a></span>()</code>
<div class="block">Grabs the Host of the Server</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubLogger.html" title="class in net.ME1312.SubServers.Bungee.Host">SubLogger</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#getLogger--">getLogger</a></span>()</code>
<div class="block">Get Process Logger</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>abstract java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#getPath--">getPath</a></span>()</code>
<div class="block">Get the Server Directory Path</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>abstract java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#getStopCommand--">getStopCommand</a></span>()</code>
<div class="block">Grab the Command to Stop the Server</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#isEnabled--">isEnabled</a></span>()</code>
<div class="block">If the Server is Enabled</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#isLogging--">isLogging</a></span>()</code>
<div class="block">If the Server is Logging</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#isRunning--">isRunning</a></span>()</code>
<div class="block">If the Server is Running</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#isTemporary--">isTemporary</a></span>()</code>
<div class="block">If the Server is Temporary</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#setAutoRestart-boolean-">setAutoRestart</a></span>(boolean&nbsp;value)</code>
<div class="block">Set if the Server will Auto Restart on unexpected shutdowns</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#setEnabled-boolean-">setEnabled</a></span>(boolean&nbsp;value)</code>
<div class="block">Set if the Server is Enabled</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#setLogging-boolean-">setLogging</a></span>(boolean&nbsp;value)</code>
<div class="block">Set if the Server is Logging</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#setStopCommand-java.lang.String-">setStopCommand</a></span>(java.lang.String&nbsp;value)</code>
<div class="block">Set the Command that Stops the Server</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#setTemporary-boolean-">setTemporary</a></span>(boolean&nbsp;value)</code>
<div class="block">Set If the Server is Temporary (will start server if not running)</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#start--">start</a></span>()</code>
<div class="block">Starts the Server</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#start-java.util.UUID-">start</a></span>(java.util.UUID&nbsp;player)</code>
<div class="block">Starts the Server</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#stop--">stop</a></span>()</code>
<div class="block">Stops the Server</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#stop-java.util.UUID-">stop</a></span>(java.util.UUID&nbsp;player)</code>
<div class="block">Stops the Server</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#terminate--">terminate</a></span>()</code>
<div class="block">Terminates the Server</div>
</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#terminate-java.util.UUID-">terminate</a></span>(java.util.UUID&nbsp;player)</code>
<div class="block">Terminates the Server</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#waitFor--">waitFor</a></span>()</code>
<div class="block">Waits for the Server to Stop</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html#willAutoRestart--">willAutoRestart</a></span>()</code>
<div class="block">If the Server will Auto Restart on unexpected shutdowns</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="SubServerController-net.ME1312.SubServers.Bungee.Host.Host-java.lang.String-int-java.lang.String-boolean-boolean-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>SubServerController</h4>
<pre>public&nbsp;SubServerController(<a href="../../../../../net/ME1312/SubServers/Bungee/Host/Host.html" title="class in net.ME1312.SubServers.Bungee.Host">Host</a>&nbsp;host,
java.lang.String&nbsp;name,
int&nbsp;port,
java.lang.String&nbsp;motd,
boolean&nbsp;hidden,
boolean&nbsp;restricted)
throws <a href="../../../../../net/ME1312/SubServers/Bungee/Library/Exception/InvalidServerException.html" title="class in net.ME1312.SubServers.Bungee.Library.Exception">InvalidServerException</a></pre>
<div class="block">Creates a SubServer</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>host</code> - Host</dd>
<dd><code>name</code> - Server Name</dd>
<dd><code>port</code> - Port Number</dd>
<dd><code>motd</code> - Server MOTD</dd>
<dd><code>restricted</code> - Players will need a permission to join if true</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../net/ME1312/SubServers/Bungee/Library/Exception/InvalidServerException.html" title="class in net.ME1312.SubServers.Bungee.Library.Exception">InvalidServerException</a></code></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="get--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>get</h4>
<pre>public&nbsp;<a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServer.html" title="interface in net.ME1312.SubServers.Bungee.Host">SubServer</a>&nbsp;get()</pre>
<div class="block">Get the SubServer that is being controlled</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>SubServer</dd>
</dl>
</li>
</ul>
<a name="start-java.util.UUID-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>start</h4>
<pre>public abstract&nbsp;boolean&nbsp;start(java.util.UUID&nbsp;player)</pre>
<div class="block">Starts the Server</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>player</code> - Player who Started</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Success Status</dd>
</dl>
</li>
</ul>
<a name="start--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>start</h4>
<pre>public&nbsp;boolean&nbsp;start()</pre>
<div class="block">Starts the Server</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Success Status</dd>
</dl>
</li>
</ul>
<a name="stop-java.util.UUID-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
<pre>public abstract&nbsp;boolean&nbsp;stop(java.util.UUID&nbsp;player)</pre>
<div class="block">Stops the Server</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>player</code> - Player who Stopped</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Success Status</dd>
</dl>
</li>
</ul>
<a name="stop--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>stop</h4>
<pre>public&nbsp;boolean&nbsp;stop()</pre>
<div class="block">Stops the Server</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Success Status</dd>
</dl>
</li>
</ul>
<a name="terminate-java.util.UUID-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>terminate</h4>
<pre>public abstract&nbsp;boolean&nbsp;terminate(java.util.UUID&nbsp;player)</pre>
<div class="block">Terminates the Server</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>player</code> - Player who Terminated</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Success Status</dd>
</dl>
</li>
</ul>
<a name="terminate--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>terminate</h4>
<pre>public&nbsp;boolean&nbsp;terminate()</pre>
<div class="block">Terminates the Server</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Success Status</dd>
</dl>
</li>
</ul>
<a name="command-java.util.UUID-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>command</h4>
<pre>public abstract&nbsp;boolean&nbsp;command(java.util.UUID&nbsp;player,
java.lang.String&nbsp;command)</pre>
<div class="block">Commands the Server</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>player</code> - Player who Commanded</dd>
<dd><code>command</code> - Command to Send</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Success Status</dd>
</dl>
</li>
</ul>
<a name="command-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>command</h4>
<pre>public&nbsp;boolean&nbsp;command(java.lang.String&nbsp;command)</pre>
<div class="block">Commands the Server</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>command</code> - Command to Send</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Success Status</dd>
</dl>
</li>
</ul>
<a name="edit-java.util.UUID-net.ME1312.SubServers.Bungee.Library.Config.YAMLSection-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>edit</h4>
<pre>public abstract&nbsp;int&nbsp;edit(java.util.UUID&nbsp;player,
<a href="../../../../../net/ME1312/SubServers/Bungee/Library/Config/YAMLSection.html" title="class in net.ME1312.SubServers.Bungee.Library.Config">YAMLSection</a>&nbsp;edit)</pre>
<div class="block">Edits the Server</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>player</code> - Player Editing</dd>
<dd><code>edit</code> - Edits</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Success Status</dd>
</dl>
</li>
</ul>
<a name="edit-net.ME1312.SubServers.Bungee.Library.Config.YAMLSection-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>edit</h4>
<pre>public&nbsp;int&nbsp;edit(<a href="../../../../../net/ME1312/SubServers/Bungee/Library/Config/YAMLSection.html" title="class in net.ME1312.SubServers.Bungee.Library.Config">YAMLSection</a>&nbsp;edit)</pre>
<div class="block">Edits the Server</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>edit</code> - Edits</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Success Status</dd>
</dl>
</li>
</ul>
<a name="waitFor--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>waitFor</h4>
<pre>public abstract&nbsp;void&nbsp;waitFor()
throws java.lang.InterruptedException</pre>
<div class="block">Waits for the Server to Stop</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.lang.InterruptedException</code></dd>
</dl>
</li>
</ul>
<a name="isRunning--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isRunning</h4>
<pre>public abstract&nbsp;boolean&nbsp;isRunning()</pre>
<div class="block">If the Server is Running</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Running Status</dd>
</dl>
</li>
</ul>
<a name="getHost--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHost</h4>
<pre>public abstract&nbsp;<a href="../../../../../net/ME1312/SubServers/Bungee/Host/Host.html" title="class in net.ME1312.SubServers.Bungee.Host">Host</a>&nbsp;getHost()</pre>
<div class="block">Grabs the Host of the Server</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The Host</dd>
</dl>
</li>
</ul>
<a name="isEnabled--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isEnabled</h4>
<pre>public abstract&nbsp;boolean&nbsp;isEnabled()</pre>
<div class="block">If the Server is Enabled</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Enabled Status</dd>
</dl>
</li>
</ul>
<a name="setEnabled-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setEnabled</h4>
<pre>public abstract&nbsp;void&nbsp;setEnabled(boolean&nbsp;value)</pre>
<div class="block">Set if the Server is Enabled</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>value</code> - Value</dd>
</dl>
</li>
</ul>
<a name="isLogging--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isLogging</h4>
<pre>public abstract&nbsp;boolean&nbsp;isLogging()</pre>
<div class="block">If the Server is Logging</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Logging Status</dd>
</dl>
</li>
</ul>
<a name="setLogging-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setLogging</h4>
<pre>public abstract&nbsp;void&nbsp;setLogging(boolean&nbsp;value)</pre>
<div class="block">Set if the Server is Logging</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>value</code> - Value</dd>
</dl>
</li>
</ul>
<a name="getLogger--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLogger</h4>
<pre>public abstract&nbsp;<a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubLogger.html" title="class in net.ME1312.SubServers.Bungee.Host">SubLogger</a>&nbsp;getLogger()</pre>
<div class="block">Get Process Logger</div>
</li>
</ul>
<a name="getCommandHistory--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCommandHistory</h4>
<pre>public abstract&nbsp;java.util.LinkedList&lt;<a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServer.LoggedCommand.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServer.LoggedCommand</a>&gt;&nbsp;getCommandHistory()</pre>
<div class="block">Gets all the commands that were sent to this Server successfully</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Command History</dd>
</dl>
</li>
</ul>
<a name="getPath--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPath</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;getPath()</pre>
<div class="block">Get the Server Directory Path</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Server Directory Path</dd>
</dl>
</li>
</ul>
<a name="getExecutable--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getExecutable</h4>
<pre>public abstract&nbsp;<a href="../../../../../net/ME1312/SubServers/Bungee/Host/Executable.html" title="class in net.ME1312.SubServers.Bungee.Host">Executable</a>&nbsp;getExecutable()</pre>
<div class="block">Get the Server's Executable String</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Executable String</dd>
</dl>
</li>
</ul>
<a name="getStopCommand--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStopCommand</h4>
<pre>public abstract&nbsp;java.lang.String&nbsp;getStopCommand()</pre>
<div class="block">Grab the Command to Stop the Server</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Stop Command</dd>
</dl>
</li>
</ul>
<a name="setStopCommand-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setStopCommand</h4>
<pre>public abstract&nbsp;void&nbsp;setStopCommand(java.lang.String&nbsp;value)</pre>
<div class="block">Set the Command that Stops the Server</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>value</code> - Value</dd>
</dl>
</li>
</ul>
<a name="willAutoRestart--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>willAutoRestart</h4>
<pre>public abstract&nbsp;boolean&nbsp;willAutoRestart()</pre>
<div class="block">If the Server will Auto Restart on unexpected shutdowns</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Auto Restart Status</dd>
</dl>
</li>
</ul>
<a name="setAutoRestart-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAutoRestart</h4>
<pre>public abstract&nbsp;void&nbsp;setAutoRestart(boolean&nbsp;value)</pre>
<div class="block">Set if the Server will Auto Restart on unexpected shutdowns</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>value</code> - Value</dd>
</dl>
</li>
</ul>
<a name="isTemporary--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isTemporary</h4>
<pre>public abstract&nbsp;boolean&nbsp;isTemporary()</pre>
<div class="block">If the Server is Temporary</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Temporary Status</dd>
</dl>
</li>
</ul>
<a name="setTemporary-boolean-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>setTemporary</h4>
<pre>public abstract&nbsp;void&nbsp;setTemporary(boolean&nbsp;value)</pre>
<div class="block">Set If the Server is Temporary (will start server if not running)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>value</code> - Value</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerContainer.html" title="class in net.ME1312.SubServers.Bungee.Host"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?net/ME1312/SubServers/Bungee/Host/SubServerController.html" target="_top">Frames</a></li>
<li><a href="SubServerController.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>

View File

@ -27,6 +27,7 @@
<li><a href="SubLogger.LogMessage.html" title="class in net.ME1312.SubServers.Bungee.Host" target="classFrame">SubLogger.LogMessage</a></li>
<li><a href="SubServer.LoggedCommand.html" title="class in net.ME1312.SubServers.Bungee.Host" target="classFrame">SubServer.LoggedCommand</a></li>
<li><a href="SubServerContainer.html" title="class in net.ME1312.SubServers.Bungee.Host" target="classFrame">SubServerContainer</a></li>
<li><a href="SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host" target="classFrame">SubServerController</a></li>
</ul>
<h2 title="Enums">Enums</h2>
<ul title="Enums">

View File

@ -161,6 +161,12 @@
<div class="block">SubServer Layout Class</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host">SubServerController</a></td>
<td class="colLast">
<div class="block">API-Safe SubServer Layout Class</div>
</td>
</tr>
</tbody>
</table>
</li>

View File

@ -95,6 +95,7 @@
<li type="circle">net.ME1312.SubServers.Bungee.Host.<a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubLogger.html" title="class in net.ME1312.SubServers.Bungee.Host"><span class="typeNameLink">SubLogger</span></a></li>
<li type="circle">net.ME1312.SubServers.Bungee.Host.<a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubLogger.LogMessage.html" title="class in net.ME1312.SubServers.Bungee.Host"><span class="typeNameLink">SubLogger.LogMessage</span></a></li>
<li type="circle">net.ME1312.SubServers.Bungee.Host.<a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServer.LoggedCommand.html" title="class in net.ME1312.SubServers.Bungee.Host"><span class="typeNameLink">SubServer.LoggedCommand</span></a></li>
<li type="circle">net.ME1312.SubServers.Bungee.Host.<a href="../../../../../net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host"><span class="typeNameLink">SubServerController</span></a></li>
</ul>
</li>
</ul>

View File

@ -198,6 +198,7 @@
</li>
<li type="circle">net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubLogger.LogMessage.html" title="class in net.ME1312.SubServers.Bungee.Host"><span class="typeNameLink">SubLogger.LogMessage</span></a></li>
<li type="circle">net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServer.LoggedCommand.html" title="class in net.ME1312.SubServers.Bungee.Host"><span class="typeNameLink">SubServer.LoggedCommand</span></a></li>
<li type="circle">net.ME1312.SubServers.Bungee.Host.<a href="net/ME1312/SubServers/Bungee/Host/SubServerController.html" title="class in net.ME1312.SubServers.Bungee.Host"><span class="typeNameLink">SubServerController</span></a></li>
<li type="circle">java.lang.Throwable (implements java.io.Serializable)
<ul>
<li type="circle">java.lang.Exception

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -1,5 +1,5 @@
Manifest-Version: 1.0
Class-Path: BungeeCord.jar
Main-Class: net.ME1312.SubServers.Bungee.Launch
Implementation-Version: 2.12.1e
Implementation-Version: 2.12.1f
Specification-Version: 0

Binary file not shown.

View File

@ -62,11 +62,11 @@ public class ExternalSubCreator extends SubCreator {
public boolean create(UUID player, String name, ServerTemplate template, Version version, int port) {
if (Util.isNull(name, template, version, port)) throw new NullPointerException();
if (template.isEnabled() && !SubAPI.getInstance().getSubServers().keySet().contains(name.toLowerCase()) && !SubCreator.isReserved(name)) {
ExternalSubLogger logger = new ExternalSubLogger(this, name + File.separator + "Creator", new Container<Boolean>(host.plugin.config.get().getSection("Settings").getBoolean("Log-Creator")), null);
thread.put(name.toLowerCase(), logger);
final SubCreateEvent event = new SubCreateEvent(player, host, name, template, version, port);
host.plugin.getPluginManager().callEvent(event);
if (!event.isCancelled()) {
ExternalSubLogger logger = new ExternalSubLogger(this, name + File.separator + "Creator", new Container<Boolean>(host.plugin.config.get().getSection("Settings").getBoolean("Log-Creator")), null);
thread.put(name.toLowerCase(), logger);
logger.start();
host.queue(new PacketExCreateServer(name, template, version, port, logger.getExternalAddress(), (JSONCallback) json -> {
try {
@ -86,7 +86,7 @@ public class ExternalSubCreator extends SubCreator {
if (!server.contains("Enabled")) server.set("Enabled", true);
if (!server.contains("Display")) server.set("Display", "");
if (!server.contains("Host")) server.set("Host", host.getName());
if (!server.contains("Group")) server.set("Group", "");
if (!server.contains("Group")) server.set("Group", new ArrayList<String>());
if (!server.contains("Port")) server.set("Port", port);
if (!server.contains("Motd")) server.set("Motd", "Some SubServer");
if (!server.contains("Log")) server.set("Log", true);
@ -99,8 +99,11 @@ public class ExternalSubCreator extends SubCreator {
if (!server.contains("Incompatible")) server.set("Incompatible", new ArrayList<String>());
if (!server.contains("Hidden")) server.set("Hidden", false);
host.addSubServer(player, name, server.getBoolean("Enabled"), port, server.getColoredString("Motd", '&'), server.getBoolean("Log"), server.getRawString("Directory"),
SubServer subserver = host.addSubServer(player, name, server.getBoolean("Enabled"), port, server.getColoredString("Motd", '&'), server.getBoolean("Log"), server.getRawString("Directory"),
new Executable(server.getRawString("Executable")), server.getRawString("Stop-Command"), true, server.getBoolean("Auto-Restart"), server.getBoolean("Hidden"), server.getBoolean("Restricted"), false);
if (server.getString("Display").length() > 0) subserver.setDisplayName(server.getString("Display"));
for (String group : server.getStringList("Group")) subserver.addGroup(group);
if (server.contains("Extra")) for (String extra : server.getSection("Extra").getKeys()) subserver.addExtra(extra, server.getObject(extra));
host.plugin.config.get().getSection("Servers").set(name, server);
host.plugin.config.save();
} else {
@ -113,7 +116,10 @@ public class ExternalSubCreator extends SubCreator {
this.thread.remove(name.toLowerCase());
}));
return true;
} else return false;
} else {
thread.remove(name.toLowerCase());
return false;
}
} else return false;
}

View File

@ -201,7 +201,7 @@ public class InternalSubCreator extends SubCreator {
if (!server.contains("Enabled")) server.set("Enabled", true);
if (!server.contains("Display")) server.set("Display", "");
if (!server.contains("Host")) server.set("Host", host.getName());
if (!server.contains("Group")) server.set("Group", "");
if (!server.contains("Group")) server.set("Group", new ArrayList<String>());
if (!server.contains("Port")) server.set("Port", port);
if (!server.contains("Motd")) server.set("Motd", "Some SubServer");
if (!server.contains("Log")) server.set("Log", true);
@ -214,8 +214,11 @@ public class InternalSubCreator extends SubCreator {
if (!server.contains("Incompatible")) server.set("Incompatible", new ArrayList<String>());
if (!server.contains("Hidden")) server.set("Hidden", false);
host.addSubServer(player, name, server.getBoolean("Enabled"), port, server.getColoredString("Motd", '&'), server.getBoolean("Log"), server.getRawString("Directory"),
SubServer subserver = host.addSubServer(player, name, server.getBoolean("Enabled"), port, server.getColoredString("Motd", '&'), server.getBoolean("Log"), server.getRawString("Directory"),
new Executable(server.getRawString("Executable")), server.getRawString("Stop-Command"), true, server.getBoolean("Auto-Restart"), server.getBoolean("Hidden"), server.getBoolean("Restricted"), false);
if (server.getString("Display").length() > 0) subserver.setDisplayName(server.getString("Display"));
for (String group : server.getStringList("Group")) subserver.addGroup(group);
if (server.contains("Extra")) for (String extra : server.getSection("Extra").getKeys()) subserver.addExtra(extra, server.getObject(extra));
host.plugin.config.get().getSection("Servers").set(name, server);
host.plugin.config.save();
} catch (Exception e) {
@ -231,14 +234,19 @@ public class InternalSubCreator extends SubCreator {
public boolean create(UUID player, String name, ServerTemplate template, Version version, int port) {
if (Util.isNull(name, template, version, port)) throw new NullPointerException();
if (template.isEnabled() && !SubAPI.getInstance().getSubServers().keySet().contains(name.toLowerCase()) && !SubCreator.isReserved(name)) {
NamedContainer<Thread, NamedContainer<InternalSubLogger, Process>> thread = new NamedContainer<Thread, NamedContainer<InternalSubLogger, Process>>(null, new NamedContainer<InternalSubLogger, Process>(new InternalSubLogger(null, this, name + File.separator + "Creator", new Container<Boolean>(false), null), null));
this.thread.put(name.toLowerCase(), thread);
final SubCreateEvent event = new SubCreateEvent(player, host, name, template, version, port);
host.plugin.getPluginManager().callEvent(event);
if (!event.isCancelled()) {
NamedContainer<Thread, NamedContainer<InternalSubLogger, Process>> thread = new NamedContainer<Thread, NamedContainer<InternalSubLogger, Process>>(new Thread(() -> InternalSubCreator.this.run(player, name, event.getTemplate(), event.getVersion(), port)), new NamedContainer<InternalSubLogger, Process>(new InternalSubLogger(null, this, name + File.separator + "Creator", new Container<Boolean>(false), null), null));
this.thread.put(name.toLowerCase(), thread);
thread.rename(new Thread(() -> InternalSubCreator.this.run(player, name, event.getTemplate(), event.getVersion(), port)));
thread.name().start();
return true;
} else return false;
} else {
this.thread.remove(name.toLowerCase());
return false;
}
} else return false;
}

View File

@ -0,0 +1,377 @@
package net.ME1312.SubServers.Bungee.Host;
import net.ME1312.SubServers.Bungee.Library.Config.YAMLSection;
import net.ME1312.SubServers.Bungee.Library.Exception.InvalidServerException;
import java.util.*;
/**
* API-Safe SubServer Layout Class
*/
public abstract class SubServerController {
private final net.ME1312.SubServers.Bungee.Host.SubServerContainer control;
/**
* Creates a SubServer
*
* @param host Host
* @param name Server Name
* @param port Port Number
* @param motd Server MOTD
* @param restricted Players will need a permission to join if true
* @throws InvalidServerException
*/
public SubServerController(Host host, String name, int port, String motd, boolean hidden, boolean restricted) throws InvalidServerException {
control = new SubServerContainer(host, name, port, motd, hidden, restricted) {
@Override
public boolean start() {
return SubServerController.this.start();
}
@Override
public boolean start(UUID player) {
return SubServerController.this.start(player);
}
@Override
public boolean stop() {
return SubServerController.this.stop();
}
@Override
public boolean stop(UUID player) {
return SubServerController.this.stop(player);
}
@Override
public boolean terminate() {
return SubServerController.this.terminate();
}
@Override
public boolean terminate(UUID player) {
return SubServerController.this.terminate(player);
}
@Override
public boolean command(String command) {
return SubServerController.this.command(command);
}
@Override
public boolean command(UUID player, String command) {
return SubServerController.this.command(player, command);
}
@Override
public int edit(YAMLSection edit) {
return SubServerController.this.edit(edit);
}
@Override
public int edit(UUID player, YAMLSection edit) {
return SubServerController.this.edit(player, edit);
}
@Override
public void waitFor() throws InterruptedException {
SubServerController.this.waitFor();
}
@Override
public boolean isRunning() {
return SubServerController.this.isRunning();
}
@Override
public Host getHost() {
return SubServerController.this.getHost();
}
@Override
public boolean isEnabled() {
return SubServerController.this.isEnabled();
}
@Override
public void setEnabled(boolean value) {
SubServerController.this.setEnabled(value);
}
@Override
public boolean isLogging() {
return SubServerController.this.isLogging();
}
@Override
public void setLogging(boolean value) {
SubServerController.this.setLogging(value);
}
@Override
public SubLogger getLogger() {
return SubServerController.this.getLogger();
}
@Override
public LinkedList<LoggedCommand> getCommandHistory() {
return SubServerController.this.getCommandHistory();
}
@Override
public String getPath() {
return SubServerController.this.getPath();
}
@Override
public Executable getExecutable() {
return SubServerController.this.getExecutable();
}
@Override
public String getStopCommand() {
return SubServerController.this.getStopCommand();
}
@Override
public void setStopCommand(String value) {
SubServerController.this.setStopCommand(value);
}
@Override
public boolean willAutoRestart() {
return SubServerController.this.willAutoRestart();
}
@Override
public void setAutoRestart(boolean value) {
SubServerController.this.setAutoRestart(value);
}
@Override
public boolean isTemporary() {
return SubServerController.this.isTemporary();
}
@Override
public void setTemporary(boolean value) {
SubServerController.this.setTemporary(value);
}
};
}
/**
* Get the SubServer that is being controlled
*
* @return SubServer
*/
public SubServer get() {
return control;
}
/**
* Starts the Server
*
* @param player Player who Started
* @return Success Status
*/
public abstract boolean start(UUID player);
/**
* Starts the Server
*
* @return Success Status
*/
public boolean start() {
return start(null);
}
/**
* Stops the Server
*
* @param player Player who Stopped
* @return Success Status
*/
public abstract boolean stop(UUID player);
/**
* Stops the Server
*
* @return Success Status
*/
public boolean stop() {
return stop(null);
}
/**
* Terminates the Server
*
* @param player Player who Terminated
* @return Success Status
*/
public abstract boolean terminate(UUID player);
/**
* Terminates the Server
*
* @return Success Status
*/
public boolean terminate() {
return terminate(null);
}
/**
* Commands the Server
*
* @param player Player who Commanded
* @param command Command to Send
* @return Success Status
*/
public abstract boolean command(UUID player, String command);
/**
* Commands the Server
*
* @param command Command to Send
* @return Success Status
*/
public boolean command(String command) {
return command(null, command);
}
/**
* Edits the Server
*
* @param player Player Editing
* @param edit Edits
* @return Success Status
*/
public abstract int edit(UUID player, YAMLSection edit);
/**
* Edits the Server
*
* @param edit Edits
* @return Success Status
*/
public int edit(YAMLSection edit) {
return edit(null, edit);
}
/**
* Waits for the Server to Stop
*
* @throws InterruptedException
*/
public abstract void waitFor() throws InterruptedException;
/**
* If the Server is Running
*
* @return Running Status
*/
public abstract boolean isRunning();
/**
* Grabs the Host of the Server
*
* @return The Host
*/
public abstract Host getHost();
/**
* If the Server is Enabled
*
* @return Enabled Status
*/
public abstract boolean isEnabled();
/**
* Set if the Server is Enabled
*
* @param value Value
*/
public abstract void setEnabled(boolean value);
/**
* If the Server is Logging
*
* @return Logging Status
*/
public abstract boolean isLogging();
/**
* Set if the Server is Logging
*
* @param value Value
*/
public abstract void setLogging(boolean value);
/**
* Get Process Logger
*/
public abstract SubLogger getLogger();
/**
* Gets all the commands that were sent to this Server successfully
*
* @return Command History
*/
public abstract LinkedList<SubServer.LoggedCommand> getCommandHistory();
/**
* Get the Server Directory Path
*
* @return Server Directory Path
*/
public abstract String getPath();
/**
* Get the Server's Executable String
*
* @return Executable String
*/
public abstract Executable getExecutable();
/**
* Grab the Command to Stop the Server
*
* @return Stop Command
*/
public abstract String getStopCommand();
/**
* Set the Command that Stops the Server
*
* @param value Value
*/
public abstract void setStopCommand(String value);
/**
* If the Server will Auto Restart on unexpected shutdowns
*
* @return Auto Restart Status
*/
public abstract boolean willAutoRestart();
/**
* Set if the Server will Auto Restart on unexpected shutdowns
*
* @param value Value
*/
public abstract void setAutoRestart(boolean value);
/**
* If the Server is Temporary
*
* @return Temporary Status
*/
public abstract boolean isTemporary();
/**
* Set If the Server is Temporary (will start server if not running)
*
* @param value Value
*/
public abstract void setTemporary(boolean value);
}

View File

@ -19,7 +19,7 @@ import java.util.List;
* SubDataServer Class
*/
public final class SubDataServer {
private static final int MAX_QUEUE = 64;
private static int MAX_QUEUE = 64;
private static HashMap<Class<? extends PacketOut>, String> pOut = new HashMap<Class<? extends PacketOut>, String>();
private static HashMap<String, List<PacketIn>> pIn = new HashMap<String, List<PacketIn>>();
private static List<InetAddress> allowedAddresses = new ArrayList<InetAddress>();

Binary file not shown.

View File

@ -96,13 +96,13 @@ public class InternalUIHandler implements UIHandler, Listener {
gui.back();
} else if (item.equals(plugin.lang.getSection("Lang").getColoredString("Interface.Generic.Undo", '&'))) {
player.closeInventory();
gui.lastUsedOptions.undo();
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastUsedOptions);
((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]).undo();
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]);
} else if (item.equals(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Creator.Submit", '&'))) {
if (player.hasPermission("subservers.host.create.*") || player.hasPermission("subservers.host.create." + gui.lastVisitedObject.toLowerCase())) {
if (player.hasPermission("subservers.host.create.*") || player.hasPermission("subservers.host.create." + ((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]).getHost().toLowerCase())) {
player.closeInventory();
gui.setDownloading(plugin.lang.getSection("Lang").getColoredString("Interface.Generic.Downloading.Response", '&'));
plugin.subdata.sendPacket(new PacketCreateServer(player.getUniqueId(), (UIRenderer.CreatorOptions) gui.lastUsedOptions, json -> {
plugin.subdata.sendPacket(new PacketCreateServer(player.getUniqueId(), ((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]), json -> {
gui.back();
}));
} else {
@ -116,7 +116,7 @@ public class InternalUIHandler implements UIHandler, Listener {
if (m.getString("message").contains(" ")) {
if (!gui.sendTitle(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Creator.Edit-Name.Invalid-Title", '&'), 4 * 20))
player.sendMessage(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Creator.Edit-Name.Invalid", '&'));
Bukkit.getScheduler().runTaskLater(plugin, () -> gui.hostCreator((UIRenderer.CreatorOptions) gui.lastUsedOptions), 4 * 20);
Bukkit.getScheduler().runTaskLater(plugin, () -> gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]), 4 * 20);
} else {
gui.setDownloading(plugin.lang.getSection("Lang").getColoredString("Interface.Generic.Downloading.Response", '&'));
plugin.subdata.sendPacket(new PacketDownloadServerList(null, null, json -> {
@ -130,17 +130,17 @@ public class InternalUIHandler implements UIHandler, Listener {
gui.setDownloading(null);
if (!gui.sendTitle(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Creator.Edit-Name.Exists-Title", '&'), 4 * 20))
player.sendMessage(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Creator.Edit-Name.Exists", '&'));
Bukkit.getScheduler().runTaskLater(plugin, () -> gui.hostCreator((UIRenderer.CreatorOptions) gui.lastUsedOptions), 4 * 20);
Bukkit.getScheduler().runTaskLater(plugin, () -> gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]), 4 * 20);
} else {
((UIRenderer.CreatorOptions) gui.lastUsedOptions).setName(m.getString("message"));
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastUsedOptions);
((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]).setName(m.getString("message"));
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]);
}
}));
}
});
} else if (ChatColor.stripColor(item).equals(ChatColor.stripColor(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Creator.Edit-Template", '&')))) {
player.closeInventory();
gui.hostCreatorTemplates(1, (UIRenderer.CreatorOptions) gui.lastUsedOptions);
gui.hostCreatorTemplates(1, (UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]);
} else if (ChatColor.stripColor(item).equals(ChatColor.stripColor(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Creator.Edit-Version", '&')))) {
player.closeInventory();
if (!gui.sendTitle(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Creator.Edit-Version.Title", '&'), 4 * 20))
@ -149,10 +149,10 @@ public class InternalUIHandler implements UIHandler, Listener {
if (new Version("1.8").compareTo(new Version(m.getString("message"))) > 0) {
if (!gui.sendTitle(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Creator.Edit-Version.Unavailable-Title", '&'), 4 * 20))
player.sendMessage(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Creator.Edit-Version.Unavailable", '&'));
Bukkit.getScheduler().runTaskLater(plugin, () -> gui.hostCreator((UIRenderer.CreatorOptions) gui.lastUsedOptions), 4 * 20);
Bukkit.getScheduler().runTaskLater(plugin, () -> gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]), 4 * 20);
} else {
((UIRenderer.CreatorOptions) gui.lastUsedOptions).setVersion(new Version(m.getString("message")));
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastUsedOptions);
((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]).setVersion(new Version(m.getString("message")));
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]);
}
});
} else if (ChatColor.stripColor(item).equals(ChatColor.stripColor(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Creator.Edit-Port", '&')))) {
@ -163,10 +163,10 @@ public class InternalUIHandler implements UIHandler, Listener {
if (Util.isException(() -> Integer.parseInt(m.getString("message"))) || Integer.parseInt(m.getString("message")) <= 0 || Integer.parseInt(m.getString("message")) > 65535) {
if (!gui.sendTitle(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Creator.Edit-Port.Invalid-Title", '&'), 4 * 20))
player.sendMessage(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Creator.Edit-Port.Invalid", '&'));
Bukkit.getScheduler().runTaskLater(plugin, () -> gui.hostCreator((UIRenderer.CreatorOptions) gui.lastUsedOptions), 4 * 20);
Bukkit.getScheduler().runTaskLater(plugin, () -> gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]), 4 * 20);
} else {
((UIRenderer.CreatorOptions) gui.lastUsedOptions).setPort(Integer.valueOf(m.getString("message")));
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastUsedOptions);
((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]).setPort(Integer.valueOf(m.getString("message")));
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]);
}
});
}
@ -178,13 +178,13 @@ public class InternalUIHandler implements UIHandler, Listener {
String item = event.getCurrentItem().getItemMeta().getDisplayName();
if (item.equals(plugin.lang.getSection("Lang").getColoredString("Interface.Generic.Back-Arrow", '&'))) {
player.closeInventory();
gui.hostCreatorTemplates(gui.lastPage - 1, (UIRenderer.CreatorOptions) gui.lastUsedOptions);
gui.hostCreatorTemplates(gui.lastPage - 1, (UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]);
} else if (item.equals(plugin.lang.getSection("Lang").getColoredString("Interface.Generic.Next-Arrow", '&'))) {
player.closeInventory();
gui.hostCreatorTemplates(gui.lastPage + 1, (UIRenderer.CreatorOptions) gui.lastUsedOptions);
gui.hostCreatorTemplates(gui.lastPage + 1, (UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]);
} else if (item.equals(plugin.lang.getSection("Lang").getColoredString("Interface.Generic.Back", '&'))) {
player.closeInventory();
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastUsedOptions);
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]);
} else {
player.closeInventory();
String obj;
@ -193,8 +193,8 @@ public class InternalUIHandler implements UIHandler, Listener {
} else {
obj = ChatColor.stripColor(item);
}
((UIRenderer.CreatorOptions) gui.lastUsedOptions).setTemplate(obj);
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastUsedOptions);
((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]).setTemplate(obj);
gui.hostCreator((UIRenderer.CreatorOptions) gui.lastVisitedObjects[0]);
}
}
} else if (event.getClickedInventory().getTitle().startsWith(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Plugin.Title", '&').split("\\$str\\$")[0]) && // Host Plugin
@ -204,10 +204,10 @@ public class InternalUIHandler implements UIHandler, Listener {
String item = event.getCurrentItem().getItemMeta().getDisplayName();
if (item.equals(plugin.lang.getSection("Lang").getColoredString("Interface.Generic.Back-Arrow", '&'))) {
player.closeInventory();
gui.hostPlugin(gui.lastPage - 1, gui.lastVisitedObject);
gui.hostPlugin(gui.lastPage - 1, ((String) gui.lastVisitedObjects[0]));
} else if (item.equals(plugin.lang.getSection("Lang").getColoredString("Interface.Generic.Next-Arrow", '&'))) {
player.closeInventory();
gui.hostPlugin(gui.lastPage + 1, gui.lastVisitedObject);
gui.hostPlugin(gui.lastPage + 1, ((String) gui.lastVisitedObjects[0]));
} else if (item.equals(plugin.lang.getSection("Lang").getColoredString("Interface.Generic.Back", '&'))) {
player.closeInventory();
gui.back();
@ -220,8 +220,8 @@ public class InternalUIHandler implements UIHandler, Listener {
if (plugin.get() == null) {
gui.reopen();
} else {
gui.setDownloading(ChatColor.stripColor(this.plugin.lang.getSection("Lang").getColoredString("Interface.Host-Plugin.Title", '&').replace("$str$", gui.lastVisitedObject)));
this.plugin.subdata.sendPacket(new PacketDownloadHostInfo(gui.lastVisitedObject, (json) -> {
gui.setDownloading(ChatColor.stripColor(this.plugin.lang.getSection("Lang").getColoredString("Interface.Host-Plugin.Title", '&').replace("$str$", (String) gui.lastVisitedObjects[0])));
this.plugin.subdata.sendPacket(new PacketDownloadHostInfo((String) gui.lastVisitedObjects[0], (json) -> {
if (json.getBoolean("valid")) {
gui.setDownloading(null);
plugin.get().open(player, json.getJSONObject("host"));
@ -263,18 +263,10 @@ public class InternalUIHandler implements UIHandler, Listener {
if (item.equals(plugin.lang.getSection("Lang").getColoredString("Interface.Generic.Back-Arrow", '&'))) {
player.closeInventory();
if (gui.lastVisitedObjectPosition > 1) {
gui.serverMenu(gui.lastPage - 1, null, gui.lastVisitedObject);
} else {
gui.serverMenu(gui.lastPage - 1, gui.lastVisitedObject, null);
}
gui.serverMenu(gui.lastPage - 1, (String) gui.lastVisitedObjects[0], (String) gui.lastVisitedObjects[1]);
} else if (item.equals(plugin.lang.getSection("Lang").getColoredString("Interface.Generic.Next-Arrow", '&'))) {
player.closeInventory();
if (gui.lastVisitedObjectPosition > 1) {
gui.serverMenu(gui.lastPage + 1, null, gui.lastVisitedObject);
} else {
gui.serverMenu(gui.lastPage + 1, gui.lastVisitedObject, null);
}
gui.serverMenu(gui.lastPage + 1, (String) gui.lastVisitedObjects[0], (String) gui.lastVisitedObjects[1]);
} else if (item.equals(plugin.lang.getSection("Lang").getColoredString("Interface.Server-Menu.Host-Menu", '&'))) {
player.closeInventory();
gui.hostMenu(1);
@ -303,15 +295,15 @@ public class InternalUIHandler implements UIHandler, Listener {
gui.back();
} else if (item.equals(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Admin.Creator", '&'))) {
player.closeInventory();
if (player.hasPermission("subservers.host.create.*") || player.hasPermission("subservers.host.create." + gui.lastVisitedObject.toLowerCase())) {
gui.hostCreator(new UIRenderer.CreatorOptions(gui.lastVisitedObject));
if (player.hasPermission("subservers.host.create.*") || player.hasPermission("subservers.host.create." + ((String) gui.lastVisitedObjects[0]).toLowerCase())) {
gui.hostCreator(new UIRenderer.CreatorOptions((String) gui.lastVisitedObjects[0]));
} else gui.reopen();
} else if (item.equals(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Admin.SubServers", '&'))) {
player.closeInventory();
gui.serverMenu(1, gui.lastVisitedObject, null);
gui.serverMenu(1, (String) gui.lastVisitedObjects[0], null);
} else if (item.equals(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Admin.Plugins", '&'))) {
player.closeInventory();
gui.hostPlugin(1, gui.lastVisitedObject);
gui.hostPlugin(1, (String) gui.lastVisitedObjects[0]);
}
}
} else if (event.getClickedInventory().getTitle().startsWith(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Admin.Title", '&').split("\\$str\\$")[0]) && // SubServer Admin
@ -325,23 +317,23 @@ public class InternalUIHandler implements UIHandler, Listener {
gui.back();
} else if (item.equals(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Admin.Start", '&'))) {
player.closeInventory();
if (player.hasPermission("subservers.subserver.start.*") || player.hasPermission("subservers.subserver.start." + gui.lastVisitedObject.toLowerCase())) {
if (player.hasPermission("subservers.subserver.start.*") || player.hasPermission("subservers.subserver.start." + ((String) gui.lastVisitedObjects[0]).toLowerCase())) {
gui.setDownloading(plugin.lang.getSection("Lang").getColoredString("Interface.Generic.Downloading.Response", '&'));
plugin.subdata.sendPacket(new PacketStartServer(player.getUniqueId(), gui.lastVisitedObject, json -> {
plugin.subdata.sendPacket(new PacketStartServer(player.getUniqueId(), (String) gui.lastVisitedObjects[0], json -> {
gui.setDownloading(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Admin.Start.Title", '&'));
Bukkit.getScheduler().runTaskLater(plugin, gui::reopen, 30);
}));
} else gui.reopen();
} else if (item.equals(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Admin.Stop", '&'))) {
player.closeInventory();
if (player.hasPermission("subservers.subserver.stop.*") || player.hasPermission("subservers.subserver.stop." + gui.lastVisitedObject.toLowerCase())) {
if (player.hasPermission("subservers.subserver.stop.*") || player.hasPermission("subservers.subserver.stop." + ((String) gui.lastVisitedObjects[0]).toLowerCase())) {
gui.setDownloading(plugin.lang.getSection("Lang").getColoredString("Interface.Generic.Downloading.Response", '&'));
final Container<Boolean> listening = new Container<Boolean>(true);
PacketInRunEvent.callback("SubStoppedEvent", new JSONCallback() {
@Override
public void run(JSONObject json) {
try {
if (listening.get()) if (!json.getString("server").equalsIgnoreCase(gui.lastVisitedObject)) {
if (listening.get()) if (!json.getString("server").equalsIgnoreCase((String) gui.lastVisitedObjects[0])) {
PacketInRunEvent.callback("SubStoppedEvent", this);
} else {
gui.reopen();
@ -349,23 +341,23 @@ public class InternalUIHandler implements UIHandler, Listener {
} catch (Exception e) {}
}
});
plugin.subdata.sendPacket(new PacketStopServer(player.getUniqueId(), gui.lastVisitedObject, false, json -> {
plugin.subdata.sendPacket(new PacketStopServer(player.getUniqueId(), (String) gui.lastVisitedObjects[0], false, json -> {
if (json.getInt("r") != 0) {
gui.reopen();
listening.set(false);
} else gui.setDownloading(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Admin.Stop.Title", '&').replace("$str$", gui.lastVisitedObject));
} else gui.setDownloading(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Admin.Stop.Title", '&').replace("$str$", (String) gui.lastVisitedObjects[0]));
}));
} else gui.reopen();
} else if (item.equals(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Admin.Terminate", '&'))) {
player.closeInventory();
if (player.hasPermission("subservers.subserver.terminate.*") || player.hasPermission("subservers.subserver.terminate." + gui.lastVisitedObject.toLowerCase())) {
if (player.hasPermission("subservers.subserver.terminate.*") || player.hasPermission("subservers.subserver.terminate." + ((String) gui.lastVisitedObjects[0]).toLowerCase())) {
gui.setDownloading(plugin.lang.getSection("Lang").getColoredString("Interface.Generic.Downloading.Response", '&'));
final Container<Boolean> listening = new Container<Boolean>(true);
PacketInRunEvent.callback("SubStoppedEvent", new JSONCallback() {
@Override
public void run(JSONObject json) {
try {
if (listening.get()) if (!json.getString("server").equalsIgnoreCase(gui.lastVisitedObject)) {
if (listening.get()) if (!json.getString("server").equalsIgnoreCase((String) gui.lastVisitedObjects[0])) {
PacketInRunEvent.callback("SubStoppedEvent", this);
} else {
gui.reopen();
@ -373,28 +365,28 @@ public class InternalUIHandler implements UIHandler, Listener {
} catch (Exception e) {}
}
});
plugin.subdata.sendPacket(new PacketStopServer(player.getUniqueId(), gui.lastVisitedObject, false, json -> {
plugin.subdata.sendPacket(new PacketStopServer(player.getUniqueId(), (String) gui.lastVisitedObjects[0], false, json -> {
if (json.getInt("r") != 0) {
gui.reopen();
listening.set(false);
} else gui.setDownloading(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Admin.Terminate.Title", '&').replace("$str$", gui.lastVisitedObject));
} else gui.setDownloading(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Admin.Terminate.Title", '&').replace("$str$", (String) gui.lastVisitedObjects[0]));
}));
} else gui.reopen();
} else if (item.equals(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Admin.Command", '&'))) {
player.closeInventory();
if (player.hasPermission("subservers.subserver.command.*") || player.hasPermission("subservers.subserver.command." + gui.lastVisitedObject.toLowerCase())) {
if (player.hasPermission("subservers.subserver.command.*") || player.hasPermission("subservers.subserver.command." + ((String) gui.lastVisitedObjects[0]).toLowerCase())) {
if (!gui.sendTitle(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Admin.Command.Title", '&'), 4 * 20))
player.sendMessage(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Admin.Command.Message", '&'));
input.put(player.getUniqueId(), m -> {
gui.setDownloading(plugin.lang.getSection("Lang").getColoredString("Interface.Generic.Downloading.Response", '&'));
plugin.subdata.sendPacket(new PacketCommandServer(player.getUniqueId(), gui.lastVisitedObject, (m.getString("message").startsWith("/"))?m.getString("message").substring(1):m.getString("message"), json -> {
plugin.subdata.sendPacket(new PacketCommandServer(player.getUniqueId(), (String) gui.lastVisitedObjects[0], (m.getString("message").startsWith("/"))?m.getString("message").substring(1):m.getString("message"), json -> {
gui.reopen();
}));
});
} else gui.reopen();
} else if (item.equals(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Admin.Plugins", '&'))) {
player.closeInventory();
gui.subserverPlugin(1, gui.lastVisitedObject);
gui.subserverPlugin(1, (String) gui.lastVisitedObjects[0]);
}
}
} else if (event.getClickedInventory().getTitle().startsWith(plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Plugin.Title", '&').split("\\$str\\$")[0]) && // SubServer Plugin
@ -404,10 +396,10 @@ public class InternalUIHandler implements UIHandler, Listener {
String item = event.getCurrentItem().getItemMeta().getDisplayName();
if (item.equals(plugin.lang.getSection("Lang").getColoredString("Interface.Generic.Back-Arrow", '&'))) {
player.closeInventory();
gui.subserverPlugin(gui.lastPage - 1, gui.lastVisitedObject);
gui.subserverPlugin(gui.lastPage - 1, (String) gui.lastVisitedObjects[0]);
} else if (item.equals(plugin.lang.getSection("Lang").getColoredString("Interface.Generic.Next-Arrow", '&'))) {
player.closeInventory();
gui.subserverPlugin(gui.lastPage + 1, gui.lastVisitedObject);
gui.subserverPlugin(gui.lastPage + 1, (String) gui.lastVisitedObjects[0]);
} else if (item.equals(plugin.lang.getSection("Lang").getColoredString("Interface.Generic.Back", '&'))) {
player.closeInventory();
gui.back();
@ -420,8 +412,8 @@ public class InternalUIHandler implements UIHandler, Listener {
if (plugin.get() == null) {
gui.reopen();
} else {
gui.setDownloading(ChatColor.stripColor(this.plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Plugin.Title", '&').replace("$str$", gui.lastVisitedObject)));
this.plugin.subdata.sendPacket(new PacketDownloadServerInfo(gui.lastVisitedObject, json -> {
gui.setDownloading(ChatColor.stripColor(this.plugin.lang.getSection("Lang").getColoredString("Interface.SubServer-Plugin.Title", '&').replace("$str$", (String) gui.lastVisitedObjects[0])));
this.plugin.subdata.sendPacket(new PacketDownloadServerInfo((String) gui.lastVisitedObjects[0], json -> {
if (json.getString("type").equals("subserver")) {
gui.setDownloading(null);
plugin.get().open(player, json.getJSONObject("server"));

View File

@ -22,10 +22,9 @@ import java.util.regex.Pattern;
* Internal GUI Renderer Class
*/
public class InternalUIRenderer extends UIRenderer {
private static int MAX_VISITED_OBJECTS = 2;
private List<Runnable> windowHistory = new LinkedList<Runnable>();
protected Options lastUsedOptions = null;
protected int lastVisitedObjectPosition = 0;
protected String lastVisitedObject = null;
protected Object[] lastVisitedObjects = new Object[MAX_VISITED_OBJECTS];
protected int lastPage = 1;
protected Runnable lastMenu = null;
protected boolean open = false;
@ -103,7 +102,7 @@ public class InternalUIRenderer extends UIRenderer {
setDownloading(ChatColor.stripColor(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Menu.Title", '&')));
plugin.subdata.sendPacket(new PacketDownloadServerList(null, null, (json) -> {
setDownloading(null);
lastVisitedObject = null;
lastVisitedObjects[0] = null;
lastPage = page;
lastMenu = () -> hostMenu(1);
windowHistory.add(() -> hostMenu(page));
@ -232,7 +231,7 @@ public class InternalUIRenderer extends UIRenderer {
if (hasHistory()) back();
} else {
setDownloading(null);
lastVisitedObject = host;
lastVisitedObjects[0] = host;
ItemStack block;
ItemMeta blockMeta;
@ -339,15 +338,15 @@ public class InternalUIRenderer extends UIRenderer {
public void hostCreator(final CreatorOptions options) {
setDownloading(ChatColor.stripColor(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Creator.Title", '&').replace("$str$", options.getHost())));
lastUsedOptions = options;
lastVisitedObjects[0] = options;
if (!options.init()) {
windowHistory.add(() -> hostCreator(options));
lastVisitedObject = options.getHost();
lastVisitedObjects[0] = options.getHost();
}
plugin.subdata.sendPacket(new PacketDownloadHostInfo(options.getHost(), json -> {
if (!json.getBoolean("valid")|| !json.getJSONObject("host").getBoolean("enabled")) {
lastUsedOptions = null;
lastVisitedObjects[0] = null;
if (hasHistory()) back();
} else {
setDownloading(null);
@ -475,11 +474,11 @@ public class InternalUIRenderer extends UIRenderer {
public void hostCreatorTemplates(final int page, final CreatorOptions options) {
setDownloading(ChatColor.stripColor(plugin.lang.getSection("Lang").getColoredString("Interface.Host-Creator.Edit-Template.Title", '&').replace("$str$", options.getHost())));
lastUsedOptions = options;
if (!options.init()) lastVisitedObject = options.getHost();
lastVisitedObjects[0] = options;
if (!options.init()) lastVisitedObjects[0] = options.getHost();
plugin.subdata.sendPacket(new PacketDownloadHostInfo(options.getHost(), (json) -> {
if (!json.getBoolean("valid")|| !json.getJSONObject("host").getBoolean("enabled")) {
lastUsedOptions = null;
lastVisitedObjects[0] = null;
if (hasHistory()) back();
} else {
lastPage = page;
@ -595,7 +594,7 @@ public class InternalUIRenderer extends UIRenderer {
if (hasHistory()) back();
} else {
setDownloading(null);
lastVisitedObject = host;
lastVisitedObjects[0] = host;
lastPage = page;
List<String> renderers = new ArrayList<String>();
for (String renderer : renderers) {
@ -699,7 +698,7 @@ public class InternalUIRenderer extends UIRenderer {
setDownloading(ChatColor.stripColor(plugin.lang.getSection("Lang").getColoredString("Interface.Group-Menu.Title", '&')));
plugin.subdata.sendPacket(new PacketDownloadServerList(null, null, (json) -> {
setDownloading(null);
lastVisitedObject = null;
lastVisitedObjects[0] = null;
lastPage = page;
lastMenu = () -> groupMenu(1);
windowHistory.add(() -> groupMenu(page));
@ -812,23 +811,18 @@ public class InternalUIRenderer extends UIRenderer {
HashMap<String, String> hosts = new HashMap<String, String>();
List<String> servers = new ArrayList<String>();
lastVisitedObjects[0] = host;
lastVisitedObjects[1] = group;
if (host != null && json.getJSONObject("hosts").keySet().contains(host)) {
lastVisitedObject = host;
lastVisitedObjectPosition = 1;
for (String subserver : json.getJSONObject("hosts").getJSONObject(host).getJSONObject("servers").keySet()) {
hosts.put(subserver, host);
servers.add(subserver);
}
} else if (group != null && json.getJSONObject("groups").keySet().contains(group)) {
lastVisitedObject = group;
lastVisitedObjectPosition = 2;
for (String server : json.getJSONObject("groups").getJSONObject(group).keySet()) {
hosts.put(server, (json.getJSONObject("groups").getJSONObject(group).getJSONObject(server).keySet().contains("host") && json.getJSONObject("hosts").keySet().contains(json.getJSONObject("groups").getJSONObject(group).getJSONObject(server).getString("host")))?json.getJSONObject("groups").getJSONObject(group).getJSONObject(server).getString("host"):null);
servers.add(server);
}
} else {
lastVisitedObject = null;
lastVisitedObjectPosition = 0;
lastMenu = () -> serverMenu(1, null, null);
for (String s : json.getJSONObject("servers").keySet()) {
hosts.put(s, null);
@ -1012,7 +1006,7 @@ public class InternalUIRenderer extends UIRenderer {
if (hasHistory()) back();
} else {
setDownloading(null);
lastVisitedObject = subserver;
lastVisitedObjects[0] = subserver;
ItemStack block;
ItemMeta blockMeta;
ItemStack div = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short) 15);
@ -1194,7 +1188,7 @@ public class InternalUIRenderer extends UIRenderer {
if (hasHistory()) back();
} else {
setDownloading(null);
lastVisitedObject = subserver;
lastVisitedObjects[0] = subserver;
lastPage = page;
List<String> renderers = new ArrayList<String>();
for (String renderer : renderers) {

View File

@ -1,4 +1,4 @@
name: SubServers-Console
main: net.ME1312.SubServers.Console.ConsolePlugin
version: 2.12b
version: 2.12.1a
author: ME1312

View File

@ -0,0 +1,114 @@
package net.ME1312.SubServers.Console;
import org.fusesource.jansi.AnsiOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class AnsiHTMLColorStream extends AnsiOutputStream {
private boolean concealOn = false;
private static final String[] ANSI_COLOR_MAP = new String[]{"000000", "cd0000", "25bc24", "e1e100", "0000ee", "cd00cd", "00e1e1", "ffffff"};
private static final byte[] BYTES_QUOT = "&quot;".getBytes();
private static final byte[] BYTES_AMP = "&amp;".getBytes();
private static final byte[] BYTES_LT = "&lt;".getBytes();
private static final byte[] BYTES_GT = "&gt;".getBytes();
private List<String> closingAttributes = new ArrayList();
public void close() throws IOException {
this.closeAttributes();
super.close();
}
public AnsiHTMLColorStream(OutputStream os) {
super(os);
}
private void write(String s) throws IOException {
super.out.write(s.getBytes());
}
private void writeAttribute(String s) throws IOException {
this.write("<" + s + ">");
this.closingAttributes.add(0, s.split(" ", 2)[0]);
}
private void closeAttributes() throws IOException {
Iterator i$ = this.closingAttributes.iterator();
while(i$.hasNext()) {
String attr = (String)i$.next();
this.write("</" + attr + ">");
}
this.closingAttributes.clear();
}
public void write(int data) throws IOException {
switch(data) {
case 34:
this.out.write(BYTES_QUOT);
break;
case 38:
this.out.write(BYTES_AMP);
break;
case 60:
this.out.write(BYTES_LT);
break;
case 62:
this.out.write(BYTES_GT);
break;
default:
super.write(data);
}
}
public void writeLine(byte[] buf, int offset, int len) throws IOException {
this.write(buf, offset, len);
this.closeAttributes();
}
protected void processSetAttribute(int attribute) throws IOException {
switch(attribute) {
case 1:
this.writeAttribute("b");
break;
case 4:
this.writeAttribute("u");
case 7:
case 27:
default:
break;
case 8:
this.write("\u001b[8m");
this.concealOn = true;
break;
case 22:
this.closeAttributes();
break;
case 24:
this.closeAttributes();
}
}
protected void processAttributeRest() throws IOException {
if (this.concealOn) {
this.write("\u001b[0m");
this.concealOn = false;
}
this.closeAttributes();
}
protected void processSetForegroundColor(int color) throws IOException {
this.writeAttribute("span style=\"color: #" + ANSI_COLOR_MAP[color] + ";\"");
}
protected void processSetBackgroundColor(int color) throws IOException {
this.writeAttribute("span style=\"background-color: #" + ANSI_COLOR_MAP[color] + ";\"");
}
}

View File

@ -64,7 +64,7 @@ public final class ConsolePlugin extends Plugin implements Listener {
public void onServerCreate(SubCreateEvent event) {
if (!event.isCancelled() && config.get().getStringList("Enabled-Creators").contains(event.getHost().getName().toLowerCase())) {
if (!cCurrent.keySet().contains(event.getHost().getName().toLowerCase())) {
SwingUtilities.invokeLater(() -> cCurrent.put(event.getName().toLowerCase(), new ConsoleWindow(this, event.getHost().getCreator().getLogger(event.getName().toLowerCase()))));
cCurrent.put(event.getName().toLowerCase(), new ConsoleWindow(this, event.getHost().getCreator().getLogger(event.getName().toLowerCase())));
} else {
cCurrent.get(event.getName().toLowerCase()).clear();
}
@ -75,7 +75,7 @@ public final class ConsolePlugin extends Plugin implements Listener {
public void onServerStart(SubStartEvent event) {
if (!event.isCancelled() && config.get().getStringList("Enabled-Servers").contains(event.getServer().getName().toLowerCase())) {
if (!sCurrent.keySet().contains(event.getServer().getName().toLowerCase())) {
SwingUtilities.invokeLater(() -> sCurrent.put(event.getServer().getName().toLowerCase(), new ConsoleWindow(this, event.getServer().getLogger())));
sCurrent.put(event.getServer().getName().toLowerCase(), new ConsoleWindow(this, event.getServer().getLogger()));
} else {
sCurrent.get(event.getServer().getName().toLowerCase()).clear();
}

View File

@ -50,7 +50,7 @@
<title-color color="-4473925"/>
</border>
<children>
<component id="71cb5" class="javax.swing.JTextArea" binding="log">
<component id="96e88" class="javax.swing.JTextPane" binding="log">
<constraints/>
<properties>
<background color="-14144467"/>
@ -61,11 +61,7 @@
<enabled value="true"/>
<font name="Courier" size="12"/>
<foreground color="-1"/>
<lineWrap value="false"/>
</properties>
<clientProperties>
<html.disable class="java.lang.Boolean" value="true"/>
</clientProperties>
</component>
</children>
</scrollpane>

View File

@ -10,22 +10,28 @@ import javax.imageio.ImageIO;
import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.text.*;
import javax.swing.text.html.HTMLDocument;
import javax.swing.text.html.HTMLEditorKit;
import javax.swing.text.html.StyleSheet;
import java.awt.*;
import java.awt.event.*;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.List;
import java.util.logging.Level;
public final class ConsoleWindow implements SubLogFilter {
private static String RESET_VALUE = "\n\u00A0\n\u00A0";
private ConsolePlugin plugin;
private JFrame window;
private JPanel panel;
private JTextField input;
private boolean ifocus = false;
private TextFieldPopup popup;
private JTextArea log;
private JTextPane log;
private JScrollPane vScroll;
private JScrollBar hScroll;
private List<Integer> eScroll = new ArrayList<Integer>();
@ -38,6 +44,25 @@ public final class ConsoleWindow implements SubLogFilter {
private int findI = 0;
private boolean open = false;
private SubLogger logger;
private int fontSize = 12;
private AnsiHTMLColorStream stream = new AnsiHTMLColorStream(new OutputStream() {
ByteArrayOutputStream stream = new ByteArrayOutputStream();
@Override
public void write(int b) throws IOException {
stream.write(b);
if (((char) b) == '\n') {
try {
HTMLEditorKit kit = (HTMLEditorKit) log.getEditorKit();
HTMLDocument doc = (HTMLDocument) log.getDocument();
kit.insertHTML(doc, doc.getLength() - 2, new String(stream.toByteArray(), "UTF-8"), 0, 0, null);
} catch (BadLocationException e) {
e.printStackTrace();
}
stream = new ByteArrayOutputStream();
}
}
});
private boolean[] kpressed = new boolean[65535];
private KeyEventDispatcher keys = event -> {
switch (event.getID()) {
@ -111,21 +136,27 @@ public final class ConsoleWindow implements SubLogFilter {
menu.addSeparator();
item = new JMenuItem("Reset Text Size");
item.addActionListener(event -> {
log.setFont(log.getFont().deriveFont(12f));
HTMLDocument doc = (HTMLDocument) log.getDocument();
fontSize = 12;
doc.getStyleSheet().addRule("body {font-size: "+fontSize+";}\n");
hScroll();
});
menu.add(item);
item = new JMenuItem("Bigger Text");
item.setAccelerator(KeyStroke.getKeyStroke('=', Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), true));
item.addActionListener(event -> {
log.setFont(log.getFont().deriveFont((float) log.getFont().getSize() + 2));
HTMLDocument doc = (HTMLDocument) log.getDocument();
fontSize += 2;
doc.getStyleSheet().addRule("body {font-size: "+fontSize+";}\n");
hScroll();
});
menu.add(item);
item = new JMenuItem("Smaller Text");
item.setAccelerator(KeyStroke.getKeyStroke('-', Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), true));
item.addActionListener(event -> {
log.setFont(log.getFont().deriveFont((float) log.getFont().getSize() - 2));
HTMLDocument doc = (HTMLDocument) log.getDocument();
fontSize -= 2;
doc.getStyleSheet().addRule("body {font-size: "+fontSize+";}\n");
hScroll();
});
menu.add(item);
@ -137,7 +168,7 @@ public final class ConsoleWindow implements SubLogFilter {
item = new JMenuItem("Reload Log");
item.setAccelerator(KeyStroke.getKeyStroke('R', Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), true));
item.addActionListener(event -> {
log.setText("\n");
log.setText(RESET_VALUE);
loadContent();
});
menu.add(item);
@ -166,6 +197,11 @@ public final class ConsoleWindow implements SubLogFilter {
});
vScroll.setBorder(BorderFactory.createEmptyBorder());
new SmartScroller(vScroll, SmartScroller.VERTICAL, SmartScroller.END);
log.setContentType("text/html");
log.setEditorKit(new HTMLEditorKit());
StyleSheet style = new StyleSheet();
style.addRule("body {color: #dcdcdc; font-family: courier; font-size: 12;}\n");
log.setDocument(new HTMLDocument(style));
log.setBorder(BorderFactory.createLineBorder(new Color(40, 44, 45)));
new TextFieldPopup(log, false);
((AbstractDocument) log.getDocument()).setDocumentFilter(new DocumentFilter() {
@ -316,7 +352,7 @@ public final class ConsoleWindow implements SubLogFilter {
}
logger.registerFilter(this);
log.setText("\n");
log.setText(RESET_VALUE);
loadContent();
KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(keys);
if (logger.isLogging() && !open) open();
@ -354,7 +390,11 @@ public final class ConsoleWindow implements SubLogFilter {
}
public void log(Date date, String message) {
log.append(' ' + new SimpleDateFormat("hh:mm:ss").format(date) + ' ' + message + " \n");
try {
stream.write((' ' + new SimpleDateFormat("hh:mm:ss").format(date) + ' ' + message + " \n").getBytes("UTF-8"));
} catch (IOException e) {
e.printStackTrace();
}
}
public void log(String message) {
log(Calendar.getInstance().getTime(), message);
@ -369,7 +409,7 @@ public final class ConsoleWindow implements SubLogFilter {
}
public void clear() {
log.setText("\n");
log.setText(RESET_VALUE);
hScroll();
}

View File

@ -7,7 +7,6 @@ import net.md_5.bungee.api.connection.ProxiedPlayer;
import net.md_5.bungee.api.plugin.Command;
import net.md_5.bungee.command.ConsoleCommandSender;
import javax.swing.*;
import java.util.List;
import java.util.Map;
@ -32,11 +31,9 @@ public final class PopoutCommand {
boolean success = false;
if (servers.get(args[0].toLowerCase()).isRunning()) {
if (!plugin.sCurrent.keySet().contains(args[0].toLowerCase())) {
SwingUtilities.invokeLater(() -> {
ConsoleWindow window = new ConsoleWindow(plugin, servers.get(args[0].toLowerCase()).getLogger());
plugin.sCurrent.put(args[0].toLowerCase(), window);
window.open();
});
ConsoleWindow window = new ConsoleWindow(plugin, servers.get(args[0].toLowerCase()).getLogger());
plugin.sCurrent.put(args[0].toLowerCase(), window);
window.open();
} else {
plugin.sCurrent.get(args[0].toLowerCase()).open();
}
@ -101,13 +98,11 @@ public final class PopoutCommand {
boolean success = false;
if (hosts.get(args[0].toLowerCase()).getCreator().getReservedNames().size() > 0) {
if (!plugin.cCurrent.keySet().contains(args[0].toLowerCase())) {
SwingUtilities.invokeLater(() -> {
for (String reserved : hosts.get(args[0].toLowerCase()).getCreator().getReservedNames()) {
ConsoleWindow window = new ConsoleWindow(plugin, hosts.get(args[0].toLowerCase()).getCreator().getLogger(reserved));
plugin.cCurrent.put(reserved.toLowerCase(), window);
window.open();
}
});
for (String reserved : hosts.get(args[0].toLowerCase()).getCreator().getReservedNames()) {
ConsoleWindow window = new ConsoleWindow(plugin, hosts.get(args[0].toLowerCase()).getCreator().getLogger(reserved));
plugin.cCurrent.put(reserved.toLowerCase(), window);
window.open();
}
} else {
plugin.cCurrent.get(args[0].toLowerCase()).open();
}

Binary file not shown.

Binary file not shown.