Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0.12.0 #86

Merged
merged 75 commits into from
Apr 28, 2024
Merged

0.12.0 #86

merged 75 commits into from
Apr 28, 2024

Conversation

ham1255
Copy link
Member

@ham1255 ham1255 commented Sep 10, 2023

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

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 to be platform independent

  • new command /rb or /redisbungee with sub commands help, info, 'clean', 'show'.

  • 'rb'

    • '/rb' and '/rb info'
      image

    • '/rb show'

image

  • configuration to disable or override each command from legacy to new introduced one /rb
# 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:

/**
     * 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

issues

closes #84
closes #88
closes #92
closes #81
closes #93

@ham1255
Copy link
Member Author

ham1255 commented Sep 10, 2023

Languages still not finalized yet.

@ham1255 ham1255 added this to the 0.12.0 milestone Sep 10, 2023
@ham1255 ham1255 force-pushed the dev/0.12.0/update branch 3 times, most recently from 7b3721b to 1aaeb84 Compare September 19, 2023 11:04
@ham1255 ham1255 self-assigned this Oct 18, 2023
This was referenced Feb 24, 2024
@ham1255 ham1255 force-pushed the dev/0.12.0/update branch 3 times, most recently from 23e7d32 to c55cac3 Compare April 12, 2024 18:06
@ham1255 ham1255 force-pushed the dev/0.12.0/update branch from 83d9409 to 3c4e45d Compare April 26, 2024 16:10
@ham1255 ham1255 marked this pull request as ready for review April 28, 2024 11:19
@ham1255 ham1255 merged commit 1593c2d into develop Apr 28, 2024
1 check passed
@ham1255 ham1255 deleted the dev/0.12.0/update branch April 28, 2024 11:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment