Commit Graph

366 Commits

Author SHA1 Message Date
ME1312 29dbd107c0
More debug options 2020-08-24 12:11:16 -04:00
ME1312 fa82e0ab96
More debug messages 2020-08-24 12:04:21 -04:00
ME1312 6e60138a79
Add an error checking thread for player sync 2020-08-22 20:01:58 -04:00
ME1312 e9c0075144
Misc fixes regarding the last few commits 2020-08-21 18:33:09 -04:00
ME1312 fa77eeeab0
Allow a subserver's template to be changed 2020-08-19 21:15:55 -04:00
ME1312 443e3c2d44
Favor new connections over the old ones
This is a change to the rules that govern what happens when the same UUID connects to the same network more than once. It is now more BungeeCord like in nature.
2020-08-19 15:24:05 -04:00
ME1312 d43aae8486
Allow command overrides to be disabled seperately
This also leaves room for disabling overrides in other features in the future.
2020-08-18 20:03:59 -04:00
ME1312 b68fa0fec1
Remove some implementation redundancies 2020-08-16 14:30:36 -04:00
ME1312 26490dc140
Use single-threaded I/O for StopAction 2020-08-13 18:26:22 -04:00
ME1312 b18f047d53
Disallow the same UUID to make multiple connections to a multi-proxy network 2020-08-12 20:18:55 -04:00
ME1312 83041a1f3f
Allow SubProtocol to be extended 2020-08-11 20:28:34 -04:00
ME1312 efc12e0649
Fix possible player data desyncs 2020-07-25 05:43:42 -04:00
ME1312 891913dbe3
Ditch RedisBungee. Long live the RemotePlayer API
RedisBungee has been abandoned by it's developers. So we're abanding it too.

SubServers.Sync will now finally pick up the slack and sync basic player information between proxies over their SubData connection.
2020-07-25 01:20:59 -04:00
ME1312 1564eaaaf9
Add PAPI placeholders with SubServers.Client 2020-07-04 22:39:59 -04:00
ME1312 db8aff55f6
Allow plugins to modify the result of ping_passthrough 2020-07-03 20:23:27 -04:00
ME1312 ec2d75d0f6
Modify pings for DNS-Forward servers 2020-07-03 19:05:02 -04:00
ME1312 d76d0347e5
Add more features to Smart Fallback 2020-07-03 17:14:59 -04:00
ME1312 928c40addc
Use proper grammar for single items
Not possible for SubServers.Client since it uses global lang, but the mistake was less egregious in that case anyway.
2020-06-26 02:52:34 -04:00
ME1312 312d010585
Some more compatibility changes 2020-06-25 19:47:30 -04:00
ME1312 d8ea0cee66
Rework the SmartFallback API
There were a couple things in Smart Fallback that seemed short-sighted when it came to use by external plugins. Now you can:
-> Make decisions using player data (when available)
-> Assign partial points to a confidence score
2020-06-21 17:42:10 -04:00
ME1312 89856a19b8
Don't update templates that are lacking a `Version` property 2020-06-20 23:46:16 -04:00
ME1312 0812ff3ade
Properly set a default value for the `Replacements` option 2020-06-20 03:45:45 -04:00
ME1312 0e8bae4187
Re-Add local templates to SubServers.Host
Local templates are now stored in `/Templates`

Template cache files are still stored in `/Cache/Templates`

Remote templates are now stored in `/Cache/Remote/Templates`
2020-06-19 21:00:50 -04:00
ME1312 3fc249cf07
Add RegEx to File Selection 2020-06-13 23:23:06 -04:00
ME1312 9d01f46c16
SubCreator File Replacements
SubCreator has several new build options for updating and making replacements in files
2020-06-13 17:53:18 -04:00
ME1312 bb0dd55c95
#50 #46 Selecting Multiple Servers
This commit includes the following major changes and additions:
-> New Command & Permission Formatting
-> RemotePlayer API
-> SubData with Blocks
2020-06-12 01:45:49 -04:00
ME1312 caf8ee793d
Update GalaxiEngine 2020-02-17 19:07:26 -05:00
ME1312 65a5b7d0c9
Send actual data packet on ExCreator reload 2020-02-16 22:25:15 -05:00
ME1312 d2c7512257
Update ExternalSubServer.java 2020-02-16 20:43:52 -05:00
ME1312 4ba0489d9d
Bypass new Oracle argument restrictions 2020-02-16 15:01:17 -05:00
ME1312 bb975413a5
Update SubData 2020-02-12 11:10:22 -05:00
ME1312 11f92f2559
Correct getServerInfo() on Waterfall 2020-01-25 13:30:16 -05:00
ME1312 7a4d28b113
Update BungeeCord
The official BungeeCord fork hit us with a surprise incompatibility recently. Yikes.
2020-01-18 00:13:10 -05:00
ME1312 d39d875e2b
Correct default lang.yml formatting 2019-12-18 21:52:15 -05:00
ME1312 6e116763c1
Use the same java version for child processes 2019-12-18 14:15:02 -05:00
ME1312 51d3c31220
Add SubCreatedEvent 2019-12-18 02:49:40 -05:00
ME1312 73c402fc53
Add a default Paper template 2019-12-18 00:08:59 -05:00
ME1312 611b59f2c8
Fix the reconnect timer 2019-10-19 16:38:44 -04:00
ME1312 bfcb076cfd
Update SubData 2019-10-18 18:24:58 -04:00
ME1312 b7639ae3dc
Add a placeholder for selecting the current server in commands 2019-10-18 13:23:02 -04:00
ME1312 a5c5a532a0
Don't attempt reconnect while shutting down 2019-09-26 12:41:04 -04:00
ME1312 27806b91f9
Update SubData 2019-09-24 15:56:22 -04:00
ME1312 17b63c1e6e
Allow client apps to startup without a SubData connection active
They won't be all that useful like that, but... ¯\_(ツ)_/¯
2019-08-31 13:26:37 -04:00
ME1312 bccbfb39c9
Add a grace period on rogue SubServer detection
Async subdata shenanigans made rogue SubServer detection a little inacurrate. Specifically in regards to the last commit.

This is the fix to that
2019-08-30 15:44:54 -04:00
ME1312 81d37b8b1e
Reduce dependance on SubServers.Bungee
SubServers.Host can now seamlessly reconnect to SubServers.Bungee, even if it's been restarted, without restarting uneffected servers.

Also, you can now shutdown SubServers.Bungee without turning off remote servers. Isn't that neat?
2019-08-29 20:01:52 -04:00
ME1312 3ff2459258
Allow custom formatting of server directories in SubCreator 2019-07-29 20:20:38 -04:00
ME1312 30dd28547f
Add a post-start event 2019-06-25 17:13:27 -04:00
ME1312 9dedc3b90d
Update GalaxiEngine 2019-06-21 15:41:01 -04:00
ME1312 3af2087f19
Add a post-connect subdata event 2019-06-17 20:20:46 -04:00
ME1312 03ece299d3
Fix unnecessary .edit() of display names during reload 2019-06-17 19:30:30 -04:00
ME1312 be8f87d17c
Add the Update command
And several related UI changes to SubServers.Client
2019-06-16 23:13:48 -04:00
ME1312 071e0bceab
Update SubData 2019-05-27 15:33:52 -04:00
ME1312 08e3e202e3
Fix bug in first-time RSA setup 2019-05-25 18:53:23 -04:00
ME1312 49036b8943
Add support for console sudo in GalaxiBungee 2019-05-23 14:37:18 -04:00
ME1312 8514ea5c26
Use .setCancelServers() for fallbacks
This method (as far as I know) is exclusive to GalaxiBungee. The old method is still available as a fallback.
2019-05-23 13:03:14 -04:00
ME1312 b808a62fcb
Add support for GalaxiBungee 2019-05-16 18:36:41 -04:00
ME1312 185b6b84bb
Mirror changes in SubServers.Sync 2019-05-13 22:02:38 -04:00
ME1312 61ee89cfe3
Mirror changes in SubServers.Host 2019-05-12 23:28:27 -04:00
ME1312 7059b5cad7
General Fixes & Module Updates 2019-05-11 17:23:31 -04:00
ME1312 2a939117ac
Fixes for Multi-Channel SubData 2019-05-10 00:04:10 -04:00
ME1312 504dc7bac4
Implement Multi-Channel SubData 2019-05-09 22:43:34 -04:00
ME1312 1952e7b940
Implement several new packet types 2019-05-09 16:17:15 -04:00
ME1312 4923b7111f
#41 Add `host` to the environment 2019-05-02 12:11:48 -04:00
ME1312 776183510e
Config Updater & Smart Fallback Update 2019-04-29 11:05:06 -04:00
ME1312 472c83f975
Add proper 1.14 support 2019-04-26 14:03:00 -04:00
ME1312 7f23668623
Clean the Recently Deleted directory periodically 2019-04-25 23:24:10 -04:00
ME1312 09c8c4665b
Change potential version numbers 2019-04-19 11:14:57 -04:00
ME1312 3dab84c0eb
Begin rewrite for SubData 2 2019-04-18 10:02:09 -04:00
ME1312 935a59bb34
Ignore servers not running in the confidence score 2019-03-23 19:51:40 -04:00
ME1312 afa34f4993
Add warnings for connecting to known offline servers #39 2019-02-27 14:05:05 -05:00
ME1312 d81e93b583
Only launch the auto-starter thread when needed 2019-01-29 22:32:28 -05:00
ME1312 2bf26a1b74
Give the new option a more fitting name 2019-01-29 22:23:21 -05:00
ME1312 6131790245
Add an option to space out auto-starting servers 2019-01-29 22:05:59 -05:00
ME1312 024dde444c
Update client auto-linking 2019-01-26 21:04:53 -05:00
ME1312 975a12f3b6
#36 Init SubServers.Console before SubAPI 2019-01-23 12:27:34 -05:00
ME1312 7158e0a3da
Fix SubData's log stream 2019-01-22 12:48:47 -05:00
ME1312 361acf7b17
Add a dedicated restart packet
I don't reccommend using this packet over the start & stop combination because of the lack of feedback you get in comparision.

However, if the server sending the packet is requesting to restart itself then this is your only option, so that's why it's here.
2019-01-20 17:49:12 -05:00
ME1312 cd5bdbaa35
Add tab completes for console-only commands 2019-01-17 14:20:13 -05:00
ME1312 fcde0bc845
Add Version support to YAMLConfig 2019-01-17 12:44:47 -05:00
ME1312 8b77434ccf
#35 Add `address` variable to creator/server executable 2019-01-17 11:02:56 -05:00
ME1312 75a872252f
#35 Add command line variables to SubServers
Also, a fix for #34
2019-01-17 10:39:15 -05:00
ME1312 b88facf7f3
#33 Use non-player check instead of console-only one 2019-01-15 14:53:44 -05:00
ME1312 118ac28e4c
Don't follow symlinks for directory copies 2019-01-14 18:47:43 -05:00
ME1312 622ef32b4e
#32 Update the utility class 2019-01-14 18:28:18 -05:00
ME1312 df159f72fe
Allow different interpreters for SubCreator build scripts 2019-01-14 11:02:17 -05:00
ME1312 9b01aebd87
#31 Add environment variables to SubCreator scripts 2019-01-13 19:52:44 -05:00
ME1312 6218b873ca
Expand on the API for restricted servers 2019-01-10 15:52:38 -05:00
ME1312 16480af130
Include dependency version in file name 2019-01-09 17:00:17 -05:00
ME1312 651c61312e
Make JNA dependency optional 2019-01-09 16:41:37 -05:00
ME1312 abaa2f3a0e
Add PID termination in Java 8
Some trickery was applied, but its okay since Java 9 has proper API methods for this stuff anyway
2019-01-09 12:37:02 -05:00
ME1312 0d46c5b604
Add a restart command 2019-01-07 16:09:20 -05:00
ME1312 3635fea2f5
Update SubServers.Console 2019-01-06 15:58:15 -05:00
ME1312 94a95de495
Name SubServers threads
This change does not apply to SubServers.Client because those apps use the platform's native scheduler instead of threads
2019-01-06 01:58:13 -05:00
ME1312 4792e5f8b1
Make `Log-Creator` a per-host option 2019-01-05 16:04:45 -05:00
ME1312 eb70ebaeea
Revise logging GC strategy 2019-01-04 23:35:20 -05:00
ME1312 9cb499c4ec
Properly terminate child processes on windows
This applies to both SubCreator and SubServers. Only works on Java 9+ because Java 8 lacks a way to get the PIDs.
2019-01-04 18:32:01 -05:00
ME1312 1845e9d8f9
Remove the archaic Executable type
Since it was virually no different from one, this has been replaced by a String.

Additionally, the interpreter for start scripts can now be changed from cmd.exe to git bash on windows systems by using the `bash` or `sh` commands.
2019-01-04 16:51:58 -05:00
ME1312 eafacf75c3
#29 Wrap caching directory in proper quotes 2019-01-04 00:35:56 -05:00
ME1312 4d1d266807
Attempt to free up ram usage after every ~4000 log lines 2019-01-03 00:48:15 -05:00
ME1312 c05f5131b5
Remove logger history 2019-01-02 13:46:10 -05:00
ME1312 069ecc1948
Fix template compilation 2018-12-21 16:44:40 -05:00
ME1312 82dcc68023
Fix an IllegalStateException related to restricted servers 2018-12-02 12:58:56 -05:00
ME1312 a12ff22645
Correct value replacement for server.properties 2018-11-21 17:33:52 -05:00
ME1312 d877e80b9f
Correct default access rules for restricted servers 2018-11-21 16:52:03 -05:00
ME1312 32cd201697
Allow null to be passed to YAMLValue 2018-11-17 12:39:37 -05:00
ME1312 e254d37a30
Interrupt other stream when one closes 2018-11-02 19:48:46 -04:00
ME1312 114f4f2209
Add support for unicode escapes outside of the char limit 2018-10-30 15:12:53 -04:00
ME1312 207eca411e
Use the Sponge DownloadAPI instead of Maven for version searching 2018-10-22 19:25:42 -04:00
ME1312 648adeb1c2
Update GalaxiEngine 2018-10-21 00:18:40 -04:00
ME1312 3b9b4ac566
Fix for saving unicode characters in YAML 2018-10-18 15:38:00 -04:00
ME1312 a9f5c387cc
Fix consistency issues in /sub version
The version command looks a little different in SubServers.Host. Let's fix that.
2018-10-17 23:17:23 -04:00
ME1312 52c6da2517
Choose fallback based on confidence score
The fallback server chosen when a server goes down is now chosen based on SubServers' confidence that the server can recieve the player in question.

If there is a tie, the first server to achieve a high score is chosen. Servers meeting these requirements will get the highest score currently possible:
-> Fallback servers should not be white-listed (`Restricted: false`)
-> Fallback servers should be visible (`Hidden: false`)
-> Fallback subservers should be running
-> SubServers trusts that fallback servers connected to SubData are online
2018-10-14 03:26:23 -04:00
ME1312 ba2a69a568
Make the port argument optional
Not sure what port to use? Now SubServers can decide on a port number on it's own.
2018-10-08 17:07:44 -04:00
ME1312 3911b6e867
Add UPnP Forwarding Option 2018-10-07 19:25:08 -04:00
ME1312 e5ba821754
Re-Add fallback functionality 2018-10-03 19:18:16 -04:00
ME1312 261a08d014
Extract source for default templates & Fix wget 2018-10-01 17:44:37 -04:00
ME1312 82849ef3c7
Add compatability for another revision of the WaterfallConsole 2018-09-16 15:43:27 -04:00
ME1312 a2e481efe7
Patch in GalaxiEngine by default
This is to remove the confusion of what versions are compatable with eachother (it's not quite as easy as it is with BungeeCord)
2018-09-14 21:05:39 -04:00
ME1312 a687a2d1cb
Seperate SubServers.Host from the GalaxiEngine (Step 2) 2018-09-08 18:06:21 -04:00
ME1312 bc5acab41d
Replace Auto-Restart and Temporary Flags with Stop Actions
Stop Actions will is the replacement for both the Auto Restart and Temporary flags. To define that the server should restart on stop, use the RESTART keyword. To get the same result that you would get using the temporary flag, use the REMOVE_SERVER keyword.

Additionally, there is now a DELETE_SERVER keyword. This keyword does the same thing as the REMOVE_SERVER keyword, except it deletes the directory on the server ran from.

If you would like nothing special to happen when the server stops, use the NONE keyword.
2018-08-29 21:55:59 -04:00
ME1312 a781370fbb
Allow raw binary to be sent over SubData
This allows files to be transfered faster over the new system.
2018-08-23 23:35:22 -04:00
ME1312 7cd9c9bc4c
Switch SubData Packets from JSON to MessagePack encoding
This is a change to how packets are transferred; the API has not been changed.

While the difference may be unnoticable when using unencrypted packets, because of MessagePack's compact size and better handling of byte values encrypted packets should transfer faster.
2018-08-23 22:32:49 -04:00
ME1312 9f88bb5099
Remove temporary servers from the config when finished 2018-08-20 17:50:27 -04:00
ME1312 cb7b3964f2
Send off reload packet only when api.ready 2018-08-10 15:58:17 -04:00
ME1312 215097976c
Rewrite the info command
The info command can now display information about proxies, hosts and servers (not just SubServers)
2018-08-10 00:50:10 -04:00
ME1312 545565512b
Restructure the Download packet group
The Download group of packets was in desperate need for a restructuring.

Now, instead of using `DownloadServerList` to list everything, different object types now are downloaded through their own seperate packets. (Improving network efficiency)
2018-08-09 14:54:56 -04:00
ME1312 ed1b45fccb
Make UI elements consistant 2018-08-06 22:39:29 -04:00
ME1312 38eec66a4b
Further define proxy status colors
The proxies section of the list command now functions like the rest. You can hover over proxies in-game to get more status information on them.

The colors shown are as follows:
Green (Optimal): Proxy is connected to both Redis and SubData
Blue (Available): Proxy is connected to SubData only
White (External): Proxy is connected to Redis only
Red (Disabled): Proxy is offline
2018-08-05 22:07:18 -04:00
ME1312 4aa943953f
Flesh out the Proxy API
- Proxies connected to Redis are downloaded on startup/reload
- Named proxies are no longer removed on disconnect
- Proxies now show up in `/sub list`
- Proxies now have Add/Remove events in the API
- Proxies are included in the response of the `DownloadServerList` packet
2018-08-05 17:41:17 -04:00
ME1312 b8ee251011
Add options to sync commonly altered BungeeCord values 2018-08-04 23:29:52 -04:00
ME1312 65b29e666d
Move Bungee Chat API methods to seperate class 2018-08-03 23:22:53 -04:00
ME1312 d4f4a1cf01
Correct changes from last commit 2018-07-29 19:05:50 -04:00
ME1312 d69840f439
Lock the start method for event usage 2018-07-29 19:01:36 -04:00
ME1312 97c73bf738
Implement a simalar namespaced key system in subdata
This was a change I made to the Lang API a while back, and now it has made it's way into SubData.

Packets are now tied to channels (`n`) and then handles (`h`) within those channels.
2018-07-29 14:39:42 -04:00
ME1312 98ac26750f
Fix changes from the last commit 2018-07-28 23:02:47 -04:00
ME1312 319618fe71
Create a more straightforward way for interacting with unstable methods 2018-07-28 22:09:47 -04:00
ME1312 ae1a9b990d
Finalize v2.13a 2018-07-28 13:01:28 -04:00
ME1312 47a9ae4ced
Fix the update notification 2018-07-27 15:36:51 -04:00
ME1312 3f0cb45aa3
Update vanilla patch locations 2018-07-26 21:29:26 -04:00
ME1312 55f97338f8
Seperate Sponge from Forge
The sponge template now builds SpongeVanilla, and a new template called `Forge` will continue to build SpongeForge
2018-07-26 13:34:31 -04:00
ME1312 4813be645d
Add a Sponge version of SubServers.Client
This version of SubServers.Client has the same features as the Bukkit version, minus the chest interface.

This feature may be added in the future once the documentation surrounding chest interfaces becomes more thorough.
2018-07-22 23:44:20 -04:00
ME1312 716875f999
Fix version detection for older BungeeCord builds 2018-07-22 01:35:04 -04:00
ME1312 08a7d6d176
Misc changes 2018-07-19 15:34:58 -04:00
ME1312 6eb82f27bc
Update SubServers.Client Auto-Updater
SubServers.Bungee & SubServers.Host now use the more standardised build signature system when deciding on if it should update SubServers.Client. This means it can also differentiate two snapshot builds of the same version from eachother.
2018-07-17 03:10:17 -04:00
ME1312 0ade35f544
Allow old Material names using bukkit:name
Spigot 1.13 has a compatabilty layer for old bukkit names, this will allow you to take advantage of that.

1.12: `bukkit:grass` -> `minecraft:grass`
1.13: `bukkit:grass` -> `minecraft:grass_block`
1.13: `grass` -> `minecraft:grass`
2018-07-15 14:07:22 -04:00
ME1312 8f6d3e5527
Quick fixes 2018-07-15 02:07:15 -04:00
ME1312 c1a35ff266
Finalize Pre-Release 4 2018-07-15 01:23:11 -04:00
ME1312 35c2e43192
Quick fix to add SubData Connection ID to the new API 2018-07-05 23:01:38 -04:00
ME1312 27b1d6b51a
Extend SubAPI to wrap the SubData packet centered APIs
Simple requests like those used to list hosts or servers shouldn't require messing around trying to keep up with the SubData Direct protocol. It should be easy, right?

Now, SubAPI includes methods simalar to those seen in SubServers.Bungee for accessing data for Hosts, Servers, SubServers, Proxies, & Players easily. Requests the SubData Packet API is already capable of making will be included as methods in these variables.
2018-06-30 23:46:58 -04:00
ME1312 959e444aea
Add some escapes for use in SubServers.Host commands 2018-06-25 20:51:14 -04:00