- 
                Notifications
    
You must be signed in to change notification settings  - Fork 0
 
Redis
        Viet Nguyen edited this page Jan 22, 2017 
        ·
        1 revision
      
    #Redis key-value store database structure Redis key-value store is for use for queueing, bringing players to the right place at the right time, whether it's join, teleport, or other related events.
uuid (table)
- For UUID caching
 - Because Mojang has an API limit of only 10 per minute.
 
| uuid | username | --- | --- | --- | | 0cc87f4b-6b4a-404f-b11d-db2e76a24243 | AsianGuy_Gamer | | c088272e-a8ca-496c-91a2-b7394ffe879c | ImRainbowActive | | cf1f1ea8-4bc9-4cba-886c-33997403eb80 | AruAkise_ | | ... | ... | ... |
world (table)
- Showing which world is currently loaded by which server.
 - If a world is already/currently loaded on one server, subsequent player who joins via subdomain will go to correct server.
 - This will prevent world being loaded twice on many different spigot servers
 - IP and port columns will use Spigot's server.properties' server-ip and server-port values
 
| world | address | 
|---|---|
| 00ceaed3-3715-49e9-b45f-0e01cf94f798 | 10.240.0.1:25566 | 
| 00f0ec76-03a1-4d68-b7de-2f30a054e864 | 10.240.0.2:25567 | 
| 00f6795c-8409-4efb-a5e8-ef94f51e68dc | 10.240.0.3:25568 | 
| ... | ... | 
server (table)
- Showing which Spigot servers are currently running correctly
 - This acts as BungeeCord's dynamic config to list the available servers
 - It helps handling join event via BungeeCord after sessions login, not subsequent join from server to server.
 - IP and port columns will use Spigot's server.properties' server-ip and server-port values
 - "players" column shows number of players currently online inside that Spigot server.
 - BungeeCord server will base on this to bring players to the Spigot server with least number of players currently online.
 - This feature will be ignore if a player is joining a specific world with specific players currently online on that world, instead it will use "world" table to route players correctly instead.
 
| address | players | 
|---|---|
| 10.240.0.1:25566 | 43 | 
| 10.240.0.2:25567 | 7 | 
| 10.240.0.3:25568 | 56 | 
| ... | ... | 
player (table)
- List all players online with their current server IP and port
 - For teleporting player to player correctly
 - IP and port columns will use Spigot's server.properties' server-ip and server-port values
 
| uuid | address | 
|---|---|
| 0cc87f4b-6b4a-404f-b11d-db2e76a24243 | 10.240.0.1:25566 | 
| bc68ca39-8f3a-4eb4-a764-8526de7fb90b | 10.240.0.2:25567 | 
| bc384491-4cf7-4185-be07-9bdb5a8310d4 | 10.240.0.3:25568 | 
| ... | ... | 
#MySQL database structure
mute (table)
- List all players who are muted on each world
 
| uuid | world | 
|---|---|
| 0cc87f4b-6b4a-404f-b11d-db2e76a24243 | bc68ca39-8f3a-4eb4-a764-8526de7fb90b | 
| bc68ca39-8f3a-4eb4-a764-8526de7fb90b | bc384491-4cf7-4185-be07-9bdb5a8310d4 | 
| bc384491-4cf7-4185-be07-9bdb5a8310d4 | 0cc87f4b-6b4a-404f-b11d-db2e76a24243 | 
| ... | ... | 
ban (table)
- List all players who are banned on each world
 
| uuid | world | 
|---|---|
| 0cc87f4b-6b4a-404f-b11d-db2e76a24243 | bc68ca39-8f3a-4eb4-a764-8526de7fb90b | 
| bc68ca39-8f3a-4eb4-a764-8526de7fb90b | bc384491-4cf7-4185-be07-9bdb5a8310d4 | 
| bc384491-4cf7-4185-be07-9bdb5a8310d4 | 0cc87f4b-6b4a-404f-b11d-db2e76a24243 | 
| ... | ... | 
back (table)
- Previous death location for a player in a specific world
 - Logs only when player is dead in a world
 
| uuid | world | x | y | z | yaw | pitch | 
|---|---|---|---|---|---|---|
| 0cc87f4b-6b4a-404f-b11d-db2e76a24243 | bc68ca39-8f3a-4eb4-a764-8526de7fb90b | 128.0 | 67.0 | 4954.0 | 89.0 | -74.4 | 
| bc68ca39-8f3a-4eb4-a764-8526de7fb90b | bc384491-4cf7-4185-be07-9bdb5a8310d4 | 6573.0 | 78.0 | 231.0 | 56.0 | 75.9 | 
| bc384491-4cf7-4185-be07-9bdb5a8310d4 | 0cc87f4b-6b4a-404f-b11d-db2e76a24243 | 54654.0 | 54.0 | 6758.0 | 67.0 | 34.6 | 
| ... | ... | ... | ... | ... | ... | ... | 
logout (table)
- Previously logged out location for a player in a specific world
 - It helps when players log back into the same world, they will be in their previous location
 - Create entry only when player logs out in a world
 
| uuid | world | x | y | z | yaw | pitch | 
|---|---|---|---|---|---|---|
| 0cc87f4b-6b4a-404f-b11d-db2e76a24243 | bc68ca39-8f3a-4eb4-a764-8526de7fb90b | 128.0 | 67.0 | 4954.0 | 89.0 | -74.4 | 
| bc68ca39-8f3a-4eb4-a764-8526de7fb90b | bc384491-4cf7-4185-be07-9bdb5a8310d4 | 6573.0 | 78.0 | 231.0 | 56.0 | 75.9 | 
| bc384491-4cf7-4185-be07-9bdb5a8310d4 | 0cc87f4b-6b4a-404f-b11d-db2e76a24243 | 54654.0 | 54.0 | 6758.0 | 67.0 | 34.6 | 
| ... | ... | ... | ... | ... | ... | ... | 
Minecraftly is distributed under the GNU GPLv3 license.