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

661 Commits

Author SHA1 Message Date
7256124377
Update gradle.yml 2024-09-16 16:02:34 +04:00
Joël | NoPermission
219a4ab360
Fixed null when fetching server id. (#118) 2024-09-16 15:44:35 +04:00
af80e2063b
Fix methods of Bungeecord listener being private
seems like i forgot to check the bungeecord impl correctly.
2024-07-08 19:47:16 +04:00
Dawid Sawicki
001d20c775
Allow to customize ping events priority via handle-motd-order (#108)
Currently, the bungee implementation is using NORMAL priority for the
ping event handler, while the velocity implementation is using LAST.
Regardless of which choice may be the better one, this is an
inconsistency that this patch addresses by using NORMAL as the default
for both platforms.

Additionally to addressing the inconsistency, this patch adds a new
config option `handle-motd-order` which uses velocity's event priority
nomenclature to allow configuring the behavior of the MOTD handling on
both platforms.

In cases where there is a MOTD plugin that incorrectly overrides a
player count using the local player count, one may choose to use order
LAST to override the value back to the global player count.

In cases where there is a MOTD plugin that relies on a player count
value from the ping response, one may choose to use order FIRST to make
sure the response will have the correct global player count.

Fixes https://github.com/ProxioDev/ValioBungee/issues/107
2024-07-05 04:22:39 +04:00
22f505e8a2
readd pubsub method until release 2024-06-18 02:13:47 +04:00
4e3abc97b3
check if player is really on the proxy when connecting
this prevents logged in error if somehow proxy shutdowns at weird time
2024-06-18 00:55:41 +04:00
Efe Kurban
be0c6be2aa
Added null-check for server keys (#106)
Fixes https://github.com/ProxioDev/ValioBungee/issues/105
2024-06-18 00:31:28 +04:00
3314c5e54b
invalidate clarifcation, remove unified jedis method from ProxyDataManager 2024-05-18 16:46:35 +04:00
d6b3956a96
properly cache last online and its invalidation 2024-05-18 16:37:31 +04:00
0871bda3f3
move plugin message into seperate project 2024-05-18 15:11:08 +04:00
dbaee0df4c
reduce code used in settings.gradle.kts, changes to plugin message 2024-05-18 15:11:08 +04:00
81ae05b6a4
unfinished new plugin message system 2024-05-18 15:11:08 +04:00
131d89129f
Revert "driver"
This reverts commit 5aad698ff5bf659587a8339a521eb91195ea024e.
2024-05-18 15:11:08 +04:00
892db93cb1
add bungeecord specific kick api 2024-05-18 15:11:08 +04:00
31699e3660
move backward api into Bungeecord only, and remove deprecated apis added after fork 2024-05-18 15:11:08 +04:00
74d2862e4f
update readme 2024-05-18 15:11:08 +04:00
df2752ae07
driver 2024-05-18 15:11:08 +04:00
85b48e219c
update readme to include info about the rename 2024-05-18 15:11:08 +04:00
4d435a3fb4
update Readme 2024-05-18 15:11:07 +04:00
5050bd260b
0.13.0-SNAPSHOT 2024-05-18 15:11:07 +04:00
e0bca62cdb
reintroduce 1 hour cache 2024-05-18 15:02:14 +04:00
md5nake
9ebfafbeef
Invalidate serversToPlayersCache on player updates (#103)
This closes #102
2024-05-18 14:59:24 +04:00
70eebdc9ec
Revert "reintroduce 1 hour cache, remove servers to player cache due changes can happen fast."
This reverts commit e85e18dad8.
2024-05-18 14:58:02 +04:00
e85e18dad8
reintroduce 1 hour cache, remove servers to player cache due changes can happen fast. 2024-05-18 14:46:23 +04:00
995c9045df
0.12.4 | fix send command to proxies not executing on sender proxy 2024-05-16 02:57:49 +04:00
2485150ddc
0.12.3 2024-05-15 22:08:18 +04:00
32735466d6
Deprecate old apis for removal in 0.13.0 2024-05-14 20:52:45 +04:00
e8715e5399
ignore IllegalStateException thrown by ServerConnection class in velocity 2024-05-14 19:23:09 +04:00
71287055b4
fix javadocs x2 2024-05-13 02:43:47 +04:00
8b48736bc1
fix javadocs 2024-05-13 02:38:58 +04:00
a2e6aff4c2
remove java docs from proxy impl 2024-05-13 02:33:56 +04:00
7c1c1183cf
update gitignore 2024-05-13 02:27:44 +04:00
7f35b64d93
stupid git 2024-05-13 02:00:31 +04:00
3dc3d80045
update github workflow 2024-05-13 01:56:38 +04:00
765e6fe122
redo module system 2024-05-13 01:54:50 +04:00
e8514b3e8b
0.12.3 snapshot 2024-05-13 01:02:29 +04:00
e1d401639e
even more oops: why caches are set to 1 hour ._. 2024-05-07 20:42:33 +04:00
f8c304d441
oops: remove cache of last-online
i must forgotten to remove it during development
2024-05-07 20:37:16 +04:00
e6b789229c
bump version 0.12.2 2024-05-06 21:30:55 +04:00
025b555457
maven publish commands aswell 2024-05-06 21:27:37 +04:00
7029552c02
clarify compatibility mode error 2024-05-06 15:24:10 +04:00
62007992a7
bump 0.12.2-snapshot 2024-05-06 15:20:34 +04:00
8a6d97e923
bump to 0.12.1 2024-04-28 23:33:07 +04:00
a65b1cdf5c
fix: adventure api version was replaced by guava 2024-04-28 23:32:08 +04:00
25441a5122
update .github/workflow/gradle.yml branch name 2024-04-28 23:18:01 +04:00
b9c7c31c09
oops: forgot to cache uuids/name of joined player 2024-04-28 23:16:19 +04:00
27358d2f5f
change big uuid cache message to include the '/rb clean' 2024-04-28 23:16:18 +04:00
c736f39e7f
bump version to 0.12.1-snapshot 2024-04-28 23:16:18 +04:00
7b90a34fae
Update README.md 2024-04-28 20:36:09 +04:00
1593c2d628
0.12.0 (#86)
## NOTES
data system shouldn't effect anybody, unless you do any direct query to
Redis query data, you should adapt the changes, by viewing classes
`ProxyDataManager` and `PlayerDataManager`

# Changes 
* RedisBungee is compiled with `java 17` now, Due java 11 support is
ending at end of September
* config version is now `2` which will reset your config if older
version
* Adventure API is included inside RedisBungee API
* new Language infrastructure for RedisBungee built-in messages #85
*commands not included yet*
* New data system which replaces Redis PubSub with Redis Streams *see
below*
* Ability to connect player to last server they where on using an config
option #84
* new environment variable `REDISBUNGEE_PROXY_ID` which can be set
before launch
* new environment variable `REDISBUNGEE_NETWORK_ID` which can be set
before launch
* RedisBungee requires redis version 6.2 or above  #88 
* Better command system
https://github.com/ProxioDev/RedisBungee/issues/93

## New data system
Due limitation of Redis PubSub in Cluster environment, Internals of
RedisBungee were changed to support Redis Streams
- Network Ids
  - networks ids used to group network proxies
    - example having 'test' network and 'main' network
- Networks in the same redis server / cluster share the same UUID cache
- Heartbeat system:
- RedisBungee old heartbeat system used hastset on redisbungee to store
the current unix time of the proxy to check what every proxy died or
not, now instead we publish the heartbeat using unix time, and online
count to proxy which proxy store it in their memory, which allow the
`get number of online players` to be faster than pooling whole list in
old data system.

- PubSub
- since redisbungee was initially designed with pubsub in mind,
registration no longer required now for event to fire, see the api
changes below.

## Commands System
* rewritten using [acf lib](https://github.com/aikar/commands) to be
platform independent
* new command `/rb` or `/redisbungee` with sub commands `help`, `info`,
'clean', 'show'.

* 'rb'
  * '/rb' and '/rb info'

![image](https://github.com/ProxioDev/RedisBungee/assets/34905970/70796ab0-b5fd-4578-8c93-c976e517df95)

  * '/rb show'
  

![image](https://github.com/ProxioDev/RedisBungee/assets/34905970/56332c37-701f-43e0-946b-6894b845fab3)

* configuration to disable or override each command from legacy to new
introduced one `/rb`
```yaml

# For redis bungee legacy commands
# either can be run using '/rbl glist' for example
# or if 'install' is set to true '/glist' can be used.
# 'install' also overrides the proxy installed commands
#
# In legacy commands each command got it own permissions since they had it own permission pre new command system,
# so it's also applied to subcommands in '/rbl'.
commands:
  # Permission redisbungee.legacy.use
  redisbungee-legacy:
    enabled: false
    subcommands:
        # Permission redisbungee.command.glist
        glist:
          enabled: false
          install: false
        # Permission redisbungee.command.find
        find:
          enabled: false
          install: false
        # Permission redisbungee.command.lastseen
        lastseen:
          enabled: false
          install: false
        # Permission redisbungee.command.ip
        ip:
          enabled: false
          install: false
        # Permission redisbungee.command.pproxy
        pproxy:
          enabled: false
          install: false
        # Permission redisbungee.command.sendtoall
        sendtoall:
          enabled: false
          install: false
        # Permission redisbungee.command.serverid
        serverid:
          enabled: false
          install: false
        # Permission redisbungee.command.serverids
        serverids:
          enabled: false
          install: false
       # Permission redisbungee.command.plist
        plist:
          enabled: false
          install: false
  # Permission redisbungee.command.use
  redisbungee:
    enabled: true
```

## API changes
- Kick api Deprecated: 
  - `kickPlayer(String playerName, String message) `
  - `kickPlayer(UUID playerUUID, String message) `

- newer where added using adventure api:
  - `kickPlayer(String playerName, Component message) `
  - `kickPlayer(UUID playerUUID, Component message) `

-  PubSub registration api Deprecated:
```java
/**
     * Register (a) PubSub channel(s), so that you may handle PubSubMessageEvent for it.
     *
     * @param channels the channels to register
     * @since 0.3
     * @deprecated No longer required
     */
    @Deprecated
    public final void registerPubSubChannels(String... channels) {
    }

    /**
     * Unregister (a) PubSub channel(s).
     *
     * @param channels the channels to unregister
     * @since 0.3
     * @deprecated No longer required
     */
    @Deprecated
    public final void unregisterPubSubChannels(String... channels) {
    }

```
# Contributors

* `summoncraft.us` for running this branch in production
* @SrBedrock for providing [Brazilian
Portuguese](https://en.wikipedia.org/wiki/Brazilian_Portuguese)
translation #87
 
# issues
closes #84 
closes #88 
closes #92 
closes #81
closes #93

---------

Signed-off-by: mohammed jasem alaajel <xrambad@gmail.com>
Co-authored-by: ThiagoROX <51332006+SrBedrock@users.noreply.github.com>
2024-04-28 15:29:53 +04:00