2
0
mirror of https://github.com/proxiodev/RedisBungee.git synced 2024-11-23 04:28:01 +00:00
Commit Graph

312 Commits

Author SHA1 Message Date
Tux
d54238023d Squeezed the last bits I possibly can out of the Lua implementation.
Performance enhancements beyond what I've done are welcome.
2015-06-22 00:13:58 -04:00
Tux
a6ab874791 One last tweak! 2015-06-21 23:23:28 -04:00
Tux
6244f5b65e Clarify that Redis does allow tables to be sent back, but not associative ones. 2015-06-21 22:44:14 -04:00
Tux
59cb27d342 Add a warning to run RedisBungeeClean if the UUID cache exceeds 750,000 entries.
While a large UUID cache will not harm RedisBungee functionality, it can be problematic in some setups, so err on the side of caution.
2015-06-21 22:13:49 -04:00
Tux
90612fa98a Extra Lua optimizations (minimize table lookups). 2015-06-21 20:44:44 -04:00
Tux
8d3681dc1f Make some Lua calls local to increase performance. 2015-06-21 20:27:27 -04:00
Tux
1c598868a9 whoops 2015-06-21 20:03:11 -04:00
Tux
d7b3568eec Slightly simplified the Lua code. 2015-06-21 20:02:12 -04:00
Tux
85eea7746e Plugin messaging API tweaks:
- Behavior on unknown commands made more consistent (don't send any messages).
- ServerPlayers message requires a type of PLAYERS/COUNT.
2015-06-21 18:11:27 -04:00
Tux
8e6447c8e0 Reintroduce pipelining support. 2015-06-21 18:09:46 -04:00
Tux
8b5eacec40 Introduce a set of performance tweaks.
The most notable changes are a refactor of DataManager to make the caching system easier to tweak, and the ability to use Lua scripts that run on the Redis server to optimize certain batch operations (currently, only getServersToPlayers() uses this).

This also paves the way for me to deprecate old versions of Redis. Anything older than 2.6 is ancient, and even 2.6 is ancient, so it ends up being a net overall benefit.
2015-06-21 17:32:28 -04:00
Tux
27bf52f13d Relicense under the Unlicense. 2015-06-09 19:37:01 -04:00
Tux
712698c76c Changed all previous uses of return(Broken)Resource to try-with-resources 2015-06-06 17:30:45 -04:00
Tux
d68b2713c4 Seamlessly support offline-mode more effectively by always skipping Mojang lookups. 2015-06-06 17:23:51 -04:00
Tux
665d73af0c more try-with-resources. 2015-06-06 16:39:10 -04:00
Tux
86efdeaf8e Make ServerPlayers messages looking for counts be less expensive to run by skipping the UUID lookup. 2015-05-17 14:54:35 -04:00
Tux
66996a295c Use try-with-resources in checking. 2015-05-17 14:46:44 -04:00
Tux
d111052ead Bump Jedis version (with some caveats). 2015-05-16 21:38:20 -04:00
Tux
c46041f802 Revert "[BREAKING] Use nanoTime() for heartbeat checks"
This reverts commit 7c76b245d4.

Conflicts:
	src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java
2015-04-30 19:58:03 -04:00
Tux
1c12aec718 Revert "Correct omission"
This reverts commit 195857a531.

Conflicts:
	src/main/java/com/imaginarycode/minecraft/redisbungee/RedisBungee.java
2015-04-30 19:57:39 -04:00
Tux
807e71e566 Allow specifying ServerPlayers PLAYERS to get players and default to just count. 2015-04-22 18:34:23 -04:00
Tux
a372720e50 Add batch server<->player mapping and current proxy plugin messages. 2015-04-22 18:30:04 -04:00
Tux
e82a3ac5dd Remove the canonical glist setting as server owners should override /glist with a plugin if they don't like RedisBungee's version. 2015-04-18 10:14:49 -04:00
Tux
10466a9464 Add exempted IP addresses (closes #19) and refactored configuration. 2015-04-18 10:13:02 -04:00
Tux
195857a531 Correct omission 2015-04-17 16:35:04 -04:00
Tux
7c76b245d4 [BREAKING] Use nanoTime() for heartbeat checks
This improves Windows and timezone-related support by using a time reference that is more-or-less fixed. You will need to update your network if you update.
2015-04-17 16:34:18 -04:00
PunKeel
c6c73cf731 Fix okhttp AccessControlException 2015-03-28 21:46:08 +01:00
vemacs
f391793e45 Merge branch 'master' of https://github.com/thechunknetwork/redisbungee 2015-02-10 08:04:06 -07:00
vemacs
06c3935c39 add test for UUIDFetcher 2015-02-10 08:04:03 -07:00
Marquee
c4dc10f3c7 Bump to 0.3.6 2015-02-05 22:12:35 -05:00
Marquee
d1bdfc9e2e Use Google Guava InetAddresses.forString() method to make sure we don't hit network. 2015-02-05 22:11:22 -05:00
Marquee
e0f50f3c5d Add license header 2015-02-04 20:11:19 -05:00
vemacs
a80c3b51e1 Add a test class 2015-02-04 08:02:30 -07:00
vemacs
b684064c92 Get last element 2015-02-04 07:55:45 -07:00
Tux
ba825c1880 Convert RedisBungee to okhttp. 2015-01-25 00:18:51 -05:00
Tux
b375b5402d Fix some FindBugs issues. 2015-01-25 00:04:34 -05:00
Tux
f201cdc4e8 Make NameFetcher less hazardous to ones health. 2015-01-25 00:02:30 -05:00
vemacs
20ef1ee284 Use new-new method with a better ratelimit 2015-01-09 07:45:45 -07:00
vemacs
6511e2154f Revert "Revert to old method as the new method has changed"
This reverts commit 16ce4eb696.
2015-01-09 07:44:03 -07:00
Tux
16ce4eb696 Revert to old method as the new method has changed 2015-01-07 20:28:28 -05:00
Tux
5c9664c344 Use proper exception handling in UUIDTranslator. 2014-12-29 11:40:34 -05:00
Tux
5a0509ac48 Allow RedisBungee to give the console an IOException instead of a unhelpful exception + NPE combo. 2014-12-27 18:30:26 -05:00
vemacs
5010670d95 Remove cache, actually fix NameFetcher 2014-12-27 16:26:21 -07:00
vemacs
e13a8de1d7 Possibly fix namefetcher 2014-12-27 14:00:09 -07:00
Tux
62eacc5816 Expose previous server. Closes #11, #12 2014-12-07 16:15:39 -05:00
Tux
47fc9792b0 Set default maximum Redis connections to 8. 2014-11-26 17:30:25 -05:00
Tux
1542ce9af8 Synchronize default configuration with the wiki. 2014-11-26 17:28:48 -05:00
Tux
e630116ff8 Better handling of improperly-fetched Jedis resources. 2014-11-26 17:26:51 -05:00
vemacs
cb61d90d6c Unregister listener, revert getCount() changes 2014-11-26 10:00:05 -07:00
vemacs
e483b9abeb There seems to be a bug in the BungeeCord scheduler, cancelling all tasks for a plugin doesn't cancel all tasks for a plugin. 2014-11-26 09:28:50 -07:00
vemacs
7df764c418 Don't spam exceptions when pinged after disable 2014-11-26 09:15:53 -07:00
Tux
d438186682 Do not allow unsubscribing from RedisBungee internal channels and properly poison the PubSub handler this time. 2014-11-02 14:16:41 -05:00
Tux
8ac70e801f Use ImmutableCollection.asList() and document this fact. 2014-11-01 12:54:23 -04:00
Tux
8645f097a5 begin workon 0.3.5 2014-10-06 22:58:10 -04:00
Tux
aa772ddf1b Reformat source code. 2014-09-21 13:56:46 -04:00
Tux
e0ee2ada21 Migrate from the consumer model to ExecutorService. The consumer was not flexible and was less reliable. 2014-09-21 13:55:14 -04:00
Tux
0dda93bfc8 don't use redis SYNC command 2014-09-20 00:08:36 -04:00
Tux
bafe894298 Removed pipelining and other fixes. 2014-09-11 16:38:40 -04:00
Tux
75939ef661 Detect inconsistency of players who are online but not registered in Redis. 2014-09-11 16:19:50 -04:00
Tux
9d392a32e5 Introduce new network events and add @ToString in PubSubMessageEvent for easier debugging. 2014-08-31 13:16:51 -04:00
Tux
c47a1678e1 Prepare development on 0.3.4 2014-08-20 21:35:50 -04:00
Tux
b38ff5d1b4 Add /pproxy command to request the proxy where a player is connected. 2014-08-20 21:31:02 -04:00
Tux
6fadd9e4c6 Fix priority of ProxyPingEvent. Closes #8 2014-08-18 15:35:29 -04:00
Tux
5102c39ee6 Removed player count caching and fixed typo (ported from the efficient-server-listing branch). 2014-08-18 15:33:51 -04:00
Tux
ad67e1c60c Removed efficient per-server list fetching. It had too many issues. It will be readded when it can be fixed. 2014-08-14 20:21:56 -04:00
Tux
e3f84c7536 Changed configuration (also a commit to trigger jenkins) 2014-08-11 04:25:46 -04:00
Tux
f685661462 Enhanced server listing API (now more efficient) and fixed count issues. 2014-08-10 17:58:45 -04:00
Tux
5a6d2b15bb Merge branch 'master' into data-caching 2014-08-10 06:49:33 -04:00
Tux
c75be36531 Remove spirous call. 2014-08-10 06:49:20 -04:00
Tux
297d4a8a7f Use an unbounded cache via ConcurrentHashMap. 2014-08-10 06:34:05 -04:00
Tux
e15b4d23f3 Added missing null check. 2014-08-10 06:27:50 -04:00
Tux
6df0a481e7 Better server caching. 2014-08-09 23:57:57 -04:00
Tux
d3b2f3f10b Removed debug message. 2014-08-09 23:18:23 -04:00
Tux
b37566b47f BLEEDING: New data caching mechanism for RedisBungee, which will enable greater performance as soon as it has been fleshed out. 2014-08-09 23:16:47 -04:00
Tux
befd4d0d26 Store user's proxy in their hash and rename the server: keys to proxy: to make their purpose more clear. 2014-08-09 15:32:12 -04:00
Tux
62cdf7af1b Indentation. 2014-08-09 15:26:52 -04:00
Tux
ee778953e8 Don't use Date, instead use Calendar. I still want to sneak in LocalDate somehow... 2014-07-30 18:03:07 -04:00
Tux
13b62f7269 Do not cache username<->UUID mappings indefinitely.
Instead, we will cache them for three days, and we will recalculate them from fresh values taken while they were online or we ask Mojang for the information.
2014-07-30 13:46:39 -04:00
mc-core.com
a8a75723fb Added an api method to send messages to a custom PubSub channel. This makes the register channel feature a lot more useful. 2014-07-25 19:00:53 -04:00
Tux
7a710c1ae0 Port RedisBungee to threadGroup branch of BungeeCord 2014-07-09 22:54:12 -04:00
Tux
1769463df1 Make the command sender public again 2014-07-02 19:30:28 -04:00
md_5
f9180dfb8d Make use of Bungee scheduler for threaded operations. 2014-07-02 16:38:04 +10:00
Tux
718b020bf2 Better checking 2014-06-26 03:34:16 -04:00
Tux
32219a3fff Need to bump this too 2014-06-24 00:44:33 -04:00
Tux
688246b8fe Tweaks, more pipelining. 2014-06-17 15:47:52 -04:00
Tux
511202044c Preserve the old sample 2014-06-13 23:36:20 -04:00
Tux
460414b3e6 Use Redis pipelining for more efficiency on high-load setups. Also updated Jedis dependency. 2014-06-11 07:24:09 -04:00
Tux
c6a6a9d9d0 Fix a typo. 2014-06-06 17:38:41 -04:00
Tux
eca670c43d Notify if a server is behind every 30 seconds. This is a /very/ common issue. 2014-06-06 17:38:03 -04:00
Tux
16ca96562f Remove the player-list-in-ping feature.
This feature is something that would ideally be separate from RedisBungee. With the removal of this feature, this is something I will be creating and unveiling when 0.3.2 is released.
2014-06-05 00:19:25 -04:00
Tux
484d0bc46b Fix inconsistency here 2014-06-04 13:15:25 -04:00
Tux
14c2f95a94 Allow default RedisBungee commands to not be registered 2014-06-04 12:59:21 -04:00
Tux
527f76ac6b Ran inspections on code. Fixed compile errors. 2014-05-30 23:57:42 -04:00
Tux
8bf80450ca Forgot to get the writeLock() 2014-05-30 23:29:51 -04:00
Tux
a908e313d4 Enhance the UUIDTranslator and add an option to increase performance. 2014-05-30 23:22:31 -04:00
Tux
92971fce96 Properly scope exceptions 2014-05-28 18:29:44 -04:00
Tux
bb71dd674f Correctly mark the UUID/name methods as NonNull 2014-05-28 02:06:17 -04:00
Tux
dea8073b11 Fix multiple players online on one proxy. 2014-05-25 18:16:14 -04:00
Tux
dd4a33d9d4 Fix canonical-glist: false usage of /glist 2014-05-24 23:16:23 -04:00
Tux
0136699b40 Support Mojangian UUIDs 2014-05-23 10:53:38 -04:00
Tux
730b77f227 Allow UUIDs to be used in commands 2014-05-23 10:50:05 -04:00
Tux
25e93d06ee Bump version to 0.3.2 for next development cycle 2014-05-23 00:31:16 -04:00
Tux
ca81f2f61b Actually send messages. Too obvious of an oversight. 2014-05-23 00:22:13 -04:00
Tux
61b83e5889 Clean up code, automatic crash detection, fix some bugs 2014-05-22 23:37:26 -04:00
Tux
638643dab7 Fix typo 2014-05-22 23:20:53 -04:00
Tux
9cf7fdb3c4 Add omitted returnBrokenResource 2014-05-22 17:49:00 -04:00
Tux
07e2621ab2 Just to be sure, initialize the API first thing. 2014-05-20 20:32:43 -04:00
Tux
1d99367956 Revert vemacs for the 3rd time.
@vemacs, do not change this, or I will not only revoke your access to the repo, I will also skin you alive. Using "API" methods in this context is just fine and just because it doesn't suit your fancy doesn't mean you can just change it. I am the BDFL, obey me.
2014-05-20 20:30:31 -04:00
vemacs
2cdc844b75 Some code consistency 2014-05-20 17:00:15 -06:00
Tux
f9fbbb388a move serverId to its own field, prepare for next release (0.3.1-SNAPSHOT) 2014-05-20 16:55:50 -06:00
Tux
235b42021b Add in some more API documentation along with a slight optimization for a common use case 2014-05-16 20:41:59 -04:00
Tux
ace0979201 Lowercase name -> UUID association 2014-04-26 22:28:17 -04:00
Tux
e316e84c2b Fix error when no other servers were present 2014-04-26 20:09:53 -04:00
Tux
0a2b43e7dc Make UUIDResolver properly deal with usernames 2014-04-26 19:43:40 -04:00
Tux
d84f42952c Optimize getPlayers() 2014-04-26 19:43:09 -04:00
Tux
c5d35a2a1c Better persistence of translated data 2014-04-23 18:05:42 -04:00
Tux
4aeb762c17 Fix UUIDTranslator bug, add UUID null checking, make plugin messaging asynchronous 2014-04-20 10:50:45 -04:00
Tux
c82adc61b0 Delete playerCounts hash entry beforehand 2014-04-20 10:16:42 -04:00
Tux
86d9b40a78 Fix a JDK8 build error 2014-04-20 01:13:22 -04:00
Tux
1362739b27 RedisBungee 0.3 base code. A lot has changed. There is more to come. 2014-04-20 01:12:28 -04:00
Tux
d3a6170e78 Refactoring 2014-04-19 16:08:49 -04:00
Tux
1ab1d6fd91 Revert to 0.2.6 for now. 2014-04-19 15:55:14 -04:00
Tux
cce0368f4c Cache server-ids 2014-04-19 15:54:30 -04:00
Tux
72eb4c6a67 Add primitive heartbeat system 2014-04-19 15:52:15 -04:00
Tux
2ddd35c438 Bumping version to 0.3, a major breaking update in the works. 2014-04-15 22:14:00 -04:00
Tux
03bb9eb679 Remove it as well 2014-04-03 23:32:10 -04:00
Tux
c6ca9d1c78 Actually add server to server set. 2014-04-03 23:27:58 -04:00
Tux
98b2c4733a Fix compile error 2014-04-03 23:24:27 -04:00
Tux
df5f5ef2c9 Lay linked-servers into the morgue. 2014-04-03 23:03:27 -04:00
Tux
e1c5533b9d Fix softdepends 2014-04-02 01:16:54 -04:00
Tux
673223a31f Add softdepends support, so we can override cmd_find/cmd_list automagically. 2014-04-01 11:44:49 -04:00
Tux
db0ea751e9 Do not poison the pubsub handler, in order to prevent shutdown hangs. 2014-03-31 23:02:26 -04:00
Tux
d65a316427 Revert unintentional change to UUID-based storage. This will be handled soon. 2014-03-31 11:21:48 -04:00
Tux
611ee89fb4 Add new PubSub handling along with associated API methods. 2014-03-31 11:19:33 -04:00
Tux
6924673c16 Improve concurrency of PubSub handler 2014-03-31 10:23:10 -04:00
Tux
8b1ea2f7df Major changes.
* Some events are now handled asynchronously.
 * There is now support for a connection limit.
 * Fixed build under JDK8.
 * Player count is now cached again. Hopefully this means an increase in performance.
2014-03-30 00:31:35 -04:00
Tux
4edfabfe98 Detect "imposter" Bungees (two Bungees with the same server-id). 2014-03-02 14:28:18 -05:00
Tux
49ea863da2 It seems this fixes timeout issues 2014-02-21 18:49:26 -05:00
Tux
27b8b09bf3 Deal with connection failures more gracefully. 2014-02-21 17:02:02 -05:00
Tux
9381701bf6 bumping version to 0.2.6 2014-02-15 02:10:49 -05:00
Tux
9425358631 Fix up Javadoc 2014-02-12 01:26:56 -05:00
Tux
cb7963dbc5 Modify POM, support new BungeeCord builds. 2014-02-11 17:42:52 -05:00
Tux
2f40480a50 javadocs 2014-01-28 17:33:53 -05:00
Tux
5a28cd9ede More robust error checking. 2014-01-25 19:06:33 -05:00
Tux
b604434091 Add aliases. Meant to be temporary until I can find a good workaround the cmd-list module in newer Bungee builds. 2014-01-24 15:40:45 -05:00
Tux
522a046192 Fix build and use getProxy() 2014-01-22 15:32:49 -05:00
Alphart
b18906ff9d Register channel for plugin message system
The plugin message system can't work if the listened channel isn't registered.
2014-01-22 17:24:45 +01:00
Tux
93744f937e oh god vemacs 2014-01-20 18:42:56 -05:00
vemacs
af88046eb3 Check the remote player set 2014-01-20 08:34:40 -07:00
vemacs
cfd1c20ad7 DAE read Effective Java 2014-01-20 08:16:30 -07:00