The generated TotalEssentials jar can be installed in the Velocity proxy and
in every backend server. The proxy keeps the authenticated session while the
player moves between servers, so login and registration are only requested in
the configured lobby.
- Put the same jar in Velocity's
pluginsfolder and in the lobby/MCPCpluginsfolders. - Start Velocity once and edit
plugins/totalessentials/velocity-auth.propertiesif the lobby server is not namedlobbyinvelocity.toml. - List multiple authentication lobbies separated by commas, for example:
authentication-servers=lobby,lobby2. - Keep backend ports private. Use Velocity
modernforwarding only when every backend is Minecraft 1.13 or newer. Networks containing 1.5.2/1.8 backends must uselegacyorbungeeguardforwarding and enable BungeeCord forwarding in each backend. Players must not be able to connect directly to backend ports.
Until login succeeds, Velocity redirects the initial connection to an authentication lobby and denies transfers to MCPC. The session is discarded when the player disconnects from the proxy.
If a backend goes offline or drops the connection, the Velocity/Bungee
companion redirects the player to the configured lobby and retries the failed
server until it becomes available. An authenticated player remains logged in
while waiting in the lobby. Configure this in velocity-auth.properties on
Velocity or bungee-auth.properties on BungeeCord:
reconnect-enabled=true
reconnect-fallback-server=lobby
reconnect-delay-seconds=3
reconnect-interval-seconds=5
reconnect-offline-retention-seconds=60
reconnect-waiting-message=&eO servidor caiu. Tentaremos reconectar automaticamente.
reconnect-success-message=&aO servidor voltou. Reconectado com sucesso.Players who remain connected in the lobby keep retrying without a time limit.
If a waiting player disconnects from the proxy, the reconnect target is retained
for reconnect-offline-retention-seconds (one minute by default) and resumes if
the player returns before it expires.
The same velocity-auth.properties file controls the network MOTD. Multiple random entries can be separated by |; it supports color codes, a second line, and the players_online / players_max placeholders documented in the file.
TotalEssentials now contains its own channel chat and no longer needs
LegendChat. Vault is the only chat-format integration: {vault_prefix} and
{vault_suffix} are read from the permission/chat provider registered in
Vault. The Bukkit-side chat path uses APIs available from 1.5.2 through 1.20,
without direct linkage to modern-only chat events. The native formatter also supports {channel}, {channel_prefix},
{player}, {player_name}, {player_displayname}, {magnata},
{chat_color} and {message}.
When PlaceholderAPI is installed, channel formats also resolve any player
placeholder, including %totalessentials_money%, %totalessentials_money_raw%
and placeholders supplied by other expansions. The player placeholders
%totalessentials_nickname% and %totalessentials_vanished% are also available.
vanished returns yes or no. Placeholder text typed by the player is not
expanded; only the configured channel format is processed.
- Install the same generated jar on every Bukkit/Spigot/Paper/MCPC backend.
- For network channels, also put that jar in either Velocity or BungeeCord's
pluginsfolder. Do not install both proxy variants on the same proxy. - Start the backends once and edit
plugins/TotalEssentials/ChatConfig.yml. - Set
network: trueon channels that must reach every server. Local channels can usedistance, while every channel supports aliases, cooldown, filter, autojoin, format and separate access/speaking permissions.
The defaults provide /g and /global for the network channel, and /l and
/local for the 230-block local channel. Running an alias without text selects
that channel; adding text sends a one-off message. /chat lists channels,
/chat join <channel> and /chat leave <channel> manage listening, and
/chat reload reloads the file. Reload requires
totalessentials.chat.reload; cooldown bypass uses
totalessentials.chat.bypass.cooldown.
Private messages use /tell <player> <message> (aliases /msg, /w and
/sussurrar) and /r <message>. They work locally and across Velocity or
BungeeCord. Settings and aliases are stored under tell.* in ChatConfig.yml;
all user-facing texts and private-message formats are stored under chat.* and
tell.* in the selected language file.
The proxy validates that the player identity in a network-chat payload belongs
to the connection that delivered it. The backend sends the message locally and the
proxy sends it only to other servers, preventing duplicates on the origin.
Backends select the plugin-message identifier automatically. The namespaced
totaless:auth channel is only 13 characters, so it works on both modern Paper
and MCPC/Bukkit versions with the legacy 16-character limit. The legacy
TotalEssentials identifier remains supported during updates.
- A core system for minecraft server that supports most versions (1.5.2 - 1.21.8) and Folia, using only database as a storage medium and various built-in commands / systems, which can be disabled at any time.
- pt_BR
- en_US
| Command | Description | Permission |
|---|---|---|
| /total, /system, /essentials | Main command of the plugin. | totalessentials.commands.essentials |
| /createkit, /criarkit | Create a kit using an interface / GUI. | totalessentials.commands.createkit |
| /delkit | Delete a kit by name. | totalessentials.commands.delkit |
| /editkit, /editarkit | Edit an existing kit using an interface / GUI. | totalessentials.commands.editkit |
| /kit, /kits | View all kits through the interface / GUI and claim them. | totalessentials.commands.kit |
| /givekit, /darkit | Give a kit to a player. | totalessentials.commands.givekit |
| /nick, /nome | Change the player’s nickname. | totalessentials.commands.nick |
| /sethome, /setarhome | Set a home at the current location. | totalessentials.commands.sethome |
| /delhome, /deletarhome | Delete a home. | totalessentials.commands.delhome |
| /home, /h | Teleport to a home. | totalessentials.commands.home |
| /warp | Teleport to a warp location. | totalessentials.commands.warp |
| /setwarp, /setarwarp | Set a warp at the current location. | totalessentials.commands.setwarp |
| /delwarp, /deletarwarp | Delete a warp by name. | totalessentials.commands.delwarp |
| /tp | Teleport to another player or location. | totalessentials.commands.tp |
| /tpa, /tpaccept, /tpadeny | Request to teleport to another player, and accept or deny requests. | totalessentials.commands.tpa |
| /echest, /ec | Open the Ender Chest. | totalessentials.commands.ec |
| /gamemode, /gm | Change the player’s gamemode. | totalessentials.commands.gamemode |
| /vanish, /v | Toggle vanish mode. | totalessentials.commands.vanish |
| /feed, /comer | Refill hunger. | totalessentials.commands.feed |
| /heal, /curar | Restore health. | totalessentials.commands.heal |
| /light, /luz | Toggle personal light source. | totalessentials.commands.light |
| /back | Return to the last location. | totalessentials.commands.back |
| /spawn | Teleport to spawn. | totalessentials.commands.spawn |
| /setspawn | Set the spawn location. | totalessentials.commands.setspawn |
| /announce, /anunciar | Broadcast a message to all players. | totalessentials.commands.announce |
| /craft | Open a crafting table. | totalessentials.commands.craft |
| /trash, /lixo | Open the trash GUI. | totalessentials.commands.trash |
| /speed | Set walking/flying speed. | totalessentials.commands.speed |
| /hat, /chapeu | Wear the item in hand as a hat. | totalessentials.commands.hat |
| /fly | Enable or disable flight. | totalessentials.commands.fly |
| /invsee | View another player’s inventory. | totalessentials.commands.invsee |
| /login, /logar | Log into your account. | totalessentials.commands.login |
| /register, /registrar | Register a new account. | totalessentials.commands.register |
| /changepass | Change your account password. | totalessentials.commands.changepass |
| /chat, /g, /l | Select, send to, join or leave native chat channels. | Configured per channel |
| /tell, /msg, /w, /r | Send and reply to local or cross-server private messages. | totalessentials.commands.tell |
| /vip | Access VIP features. | totalessentials.commands.vip |
| /shop, /loja | Access player shops. | totalessentials.commands.shop |
| /clearentities | Remove dropped items/entities from the server. | totalessentials.commands.clearentities |
| /day, /dia | Set time to day in the world (or all worlds if console). | totalessentials.commands.day |
| /night, /noite | Set time to night in the world (or all worlds if console). | totalessentials.commands.night |
| /thor, /raio, /lightning | Summon lightning at a player or at the block you are looking at. | totalessentials.commands.thor |
To use in chat, commands, signs etc.
| Color | Permission |
|---|---|
| Black | totalessentials.color.&0 |
| DarkBlue | totalessentials.color.&1 |
| DarkGreen | totalessentials.color.&2 |
| DarkTurquoise | totalessentials.color.&3 |
| DarkRed | totalessentials.color.&4 |
| Purple | totalessentials.color.&5 |
| DarkYellow | totalessentials.color.&6 |
| LightGray | totalessentials.color.&7 |
| DarkGray | totalessentials.color.&8 |
| LightBlue | totalessentials.color.&9 |
| LightGreen | totalessentials.color.&a |
| LightTurquoise | totalessentials.color.&b |
| LightRed | totalessentials.color.&c |
| Magenta | totalessentials.color.&d |
| LightYellow | totalessentials.color.&e |
| White | totalessentials.color.&f |
| Scrambled | totalessentials.color.&k |
| Reset | totalessentials.color.&r |
| Trace | totalessentials.color.&l |
| Italic | totalessentials.color.&n |
| RGB | totalessentials.color.* |
| Permission | Function |
|---|---|
| totalessentials.commands.sethome.(number of homes) | Set the maximum number of homes for a player |
| totalessentials.commands.kit.(kit name) | Allow the player to claim the specified kit |
| totalessentials.commands.warp.(warp name) | Allow the player to teleport to the specified warp |
| totalessentials.commands.nick.other | Allow the player to change another player’s nickname |
| totalessentials.commands.ec.other | Allow the player to open another player’s Ender Chest |
| totalessentials.commands.gamemode.other | Allow the player to change another player’s gamemode |
| totalessentials.commands.heal.other | Allow the player to heal other players |
| totalessentials.commands.feed.other | Allow the player to feed other players |
| totalessentials.commands.vanish.other | Allow the player to toggle vanish for other players |
| totalessentials.commands.light.other | Allow the player to toggle light for other players |
| totalessentials.commands.home.other | Allow the player to teleport to other players’ homes |
| totalessentials.commands.delhome.other | Allow the player to delete other players’ homes |
| totalessentials.commands.sethome.other | Allow the player to set homes for other players |
| totalessentials.commands.spawn.other | Allow the player to teleport other players to spawn |
| totalessentials.commands.speed.other | Allow the player to change another player’s speed |
| totalessentials.commands.login.other | Allow the player to log in another player |
| totalessentials.commands.register.other | Allow the player to register another player |
| totalessentials.commands.invsee.admin | Allow the player to view any player’s inventory |
| totalessentials.bypass.teleport | Bypass teleport delay |
| totalessentials.bypass.homelimit | Bypass the home limit restriction |
| totalessentials.bypass.kitcatch | Bypass kit cooldown |
| totalessentials.bypass.vanish | Bypass vanish detection |
| totalessentials.bypass.bed | Bypass blocked beds |
| totalessentials.bypass.vehicles | Bypass blocked vehicles |
| totalessentials.bypass.nametag | Bypass blocked name tags |
| totalessentials.bypass.netherceiling | Bypass nether ceiling restriction |
| totalessentials.bypass.shiftcontainer | Bypass shift-click restrictions in containers |
| totalessentials.bypass.opencontainer | Bypass blocked container opening |
| totalessentials.bypass.waitcommand | Bypass command cooldown |
| totalessentials.bypass.backblockedworlds | Bypass blocked worlds for /back |
| totalessentials.bypass.homeblockedworlds | Bypass blocked worlds for /home |
| totalessentials.bypass.nickblockednicks | Bypass nickname restrictions |
The Bukkit, BungeeCord and Velocity entrypoints check the latest GitHub release
when they start and then every 30 minutes. Only a release newer than the running
version is accepted. The downloaded artifact must contain all three plugin
entrypoints, both YAML descriptors and a plugin.yml version matching the
release tag.
The updater never reloads the running classes and never shuts down a server or
proxy. Bukkit places the validated jar in plugins/update. BungeeCord and
Velocity replace the on-disk jar while keeping the current version in memory;
on Windows a detached helper waits for the normal process exit before replacing
the locked jar. In every case, the new code becomes active on the next normal
restart.
Backend settings are generated in MainConfig.yml:
general:
auto-update: true
auto-update-interval-minutes: 30Proxy settings are generated in bungee-auth.properties and
velocity-auth.properties:
auto-update-enabled=true
auto-update-interval-minutes=30-
Own Lib using new features such as:
- MariaDB latest version;
- H2 V2 latest version;
- HikariCP;
- Kotlin;
- CacheSQL (created by me).
-
Reload system.
- system based on reload all configuration, besides being possible to change your lang.
-
Lang's and Config system and check;
- This system is based on the difference of the configuration file between versions, if it has a new path, it adds it if it doesn't have it, in addition to the comments of the configurations that are updated.
-
Cache System.
- Caching system built by me, made for the highest possible performance.
- [ X ] Add support of version Checker for a Windows.
- [ X ] Add Support to H2 DataBase.
- [ X ] Create CacheSQL to more powerful speed.
- [ X ] Create reload system.
- [ X ] Create auto config system with comments.
- [ X ] Create auto lang system with comments.
- gilberto