
Essentials999
Essentials999 is a comprehensive Minecraft plugin offering robust teleportation, essential player utilities, powerful administrative tools, and a versatile kit system, all designed to enhance server management and player experience.
Bug Fixes
- Fixed an issue where teleport safety checks could corrupt location data.
- Fixed the direction of teleportation when accepting "tpa" versus "tpahere" requests (players now teleport to the correct target).
- Fixed interactive menus (Homes, Warps, Kits) not responding to clicks; clicking items now correctly teleports, deletes homes, or claims kits.
- Fixed the "back" command not saving the previous location after a teleport, ensuring players can return to their last position.
- Fixed vanished players appearing visible to players who join the server after the vanish command was enabled.
- Fixed random teleportation (RTP) spawning players inside the ground block instead of standing on top of it.
- Fixed the teleport countdown timer duration to be accurate to the configured time.
- Fixed jailed players being able to walk around; movement is now properly restricted.
- Fixed teleport safety checks not correctly identifying suffocation hazards (blocks at head/body level).
- Fixed page navigation buttons (Next/Previous) in multi-page menus not functioning.
New Features
- Added AFK command that allows players to toggle their AFK status
- Implemented fully configurable AFK system with the following settings:
- Immunity to player damage when AFK (configurable)
- Immunity to mob/environmental damage when AFK (configurable)
- Movement restriction when AFK (configurable)
- AFK players are visually marked with [AFK] in the player list
- AFK status is preserved until logout
Bug Fixes
- Fixed NullPointerException that occurred when enabling the plugin
- Resolved issue where async tasks were being scheduled after plugin disable
- Corrected command registration to handle missing commands gracefully
New Features
- Flight Command (
/fly): Players can now toggle flight mode for themselves or other players. - God Mode Command (
/god): Players can now toggle god mode, making them immune to all damage. - Vanish Command (
/vanish): Players can now become invisible to other players (except those withessentials999.vanish.seepermission). Vanished players are hidden on join and shown on quit. - Teleport All Command (
/tpaall): Send a teleport request to all online players, asking them to teleport to your location. - Broadcast Command (
/broadcast): Send a server-wide broadcast message. - Time Commands (
/day,/night): Set the world time to day or night. - Weather Command (
/weather): Change the world weather to clear, rain, or thunder. - Nickname Command (
/nick): Set or clear a custom nickname for yourself. - Mute/Unmute Commands (
/mute,/unmute): Mute or unmute players, preventing them from chatting. Mutes can be temporary or permanent.
- Flight Command (
Bug Fixes & Improvements:
- Teleport Request Logic (
/tpask,/tpahere,/tpaccept,/tpdeny):- Corrected the teleportation direction for
/tpahererequests, ensuring the target player teleports to the requester. - Addressed concurrency issues in
/tpdenyto prevent race conditions and ensure consistent request handling.
- Corrected the teleportation direction for
- RTP World Environment Handling:
- Replaced hardcoded world names with
World.Environmentchecks in the/rtpcommand and GUI, allowing for more flexible and accurate RTP across different world types (Overworld, Nether, End).
- Replaced hardcoded world names with
- Command Not Found Handling:
- Modified the
onCommandmethod to send a custom "Unknown command" message instead of relying on Bukkit's default help message when an unrecognized command is entered.
- Modified the
/backCommand Enhancement:- Implemented a
PlayerDeathEventhandler to automatically save a player's location upon death, enabling the/backcommand to teleport players to their last death point.
- Implemented a
- Code Structure Refactoring:
- Extracted
PlayerHomesandWarpsManagerfrom inner classes into their own dedicated files (PlayerHomes.javaandWarpsManager.java) to improve code organization, readability, and maintainability. - Updated all instantiations and references to these classes accordingly.
- Extracted
New Features:
- Teleport Countdown:
- Introduced a configurable teleport countdown (
teleport-countdown-secondsinconfig.yml) for commands like/home,/warp,/spawn, and/back. - If a player moves during the countdown, the teleportation is automatically cancelled.
- Introduced a configurable teleport countdown (
- Advanced Random Teleport (RTP):
- Configurable Biome Targeting: Added the ability to specify a target biome for RTP in
config.yml, allowing players to teleport to specific biomes. - World Border Check: Implemented a configurable option (
check-world-borderinconfig.yml) to prevent RTP from teleporting players outside the world border. - RTP Other Players: Added functionality for players with
essentials999.rtp.otherspermission to use/rtp <playername>to randomly teleport other players.
- Configurable Biome Targeting: Added the ability to specify a target biome for RTP in
- Player Information Commands:
/seen <player>: Displays the last time a specified player was online./whois <player>: Provides detailed statistics about a player, including UUID, health, food level, gamemode, total kills, and total deaths.
- Player Utility Commands:
/heal [player]: Heals the command sender or a specified player to full health, food, and removes negative potion effects and fire./feed [player]: Fills the food and saturation levels of the command sender or a specified player.
/jail <player> <time>Command:- Allows players with
essentials999.jailpermission to jail another player in a bedrock box for a specified duration. - Includes logic to prevent jailed players from teleporting out or escaping by logging out (re-jails on login).
- Allows players with
- Kit System:
/kit <name>: Allows players to claim a predefined kit of items./kit create <name>: Enables players withessentials999.kit.createpermission to create new kits from their current inventory./kits: Opens a paginated GUI displaying all available kits.- Kit Cooldowns: Implemented cooldowns for kits to prevent spamming.
- Kits are saved and loaded from a dedicated
kits.ymlfile.
- GUI Pagination:
- Implemented pagination for the
/homesand/warpsGUIs, allowing for easier navigation through a large number of entries. - Added "Previous Page" and "Next Page" buttons to the GUI navigation.
- Implemented pagination for the
- Warp Deletion Confirmation:
- Introduced a confirmation GUI for deleting warps, similar to the existing home deletion confirmation, to prevent accidental deletions.
- Comprehensive
config.ymlDocumentation:- Updated
config.ymlwith detailed descriptions and usage examples for all commands and configurable options, enhancing clarity and ease of use for server administrators.
- Updated
- Teleport Request Logic (
Added Homes GUI (/homes): Inventory GUI to list player homes with left-click teleport and right-click delete (with confirmation). Warps Manager: Separate global warps system stored in warps.yml. Commands: /delwarp, /warps (GUI listing warps). Warps GUI with clickable compass items. Spawn points per world instead of a single global spawn. Teleport requests GUI with accept/deny buttons. /tpdeny command to deny teleport requests. /tpgui toggle command to enable/disable teleport request GUI. Random Teleport (RTP) feature with GUI: RTP per world and global config options. Command tab completion for homes, warps, teleport requests, and tpgui. Help GUI (/essentials999 help) showing categorized commands. Asynchronous saving of homes and warps to reduce server lag. Teleport request expiration after 30 seconds. Safety checks enhanced to verify feet and head blocks are not solid before teleporting. Prevent teleport requests to self.
🌍 RTP System Integration
✅ Added full /rtp command with smart safe location scanning.
🧠 Integrated per-world RTP config under worlds: section in config.yml.
⏱ Added RTP cooldown system (per-player, time-based).
🪨 Added solid/unsafe block checks to prevent teleporting into hazards.
🕳️ Optional cave detection to avoid placing players underground.
⚙️ Added loadRTPConfig() method to load RTP-specific settings during startup and reload.
⚙️ Essentials Config Reload Upgrade
📁 config.yml Additions
(only newly added keys)
range: 1000 max-attempts: 15 cooldown-seconds: 60 min-y-level: 80 check-caves: true allow-nether: false allow-end: false disabled-worlds: []
worlds: world_nether: enabled: true range: 500 max-attempts: 20 cooldown-seconds: 60 min-y-level: 40 check-caves: true allow-nether: true
world_the_end: enabled: false
Bug Fixes Separated global warps from player homes: Warps are now stored in a dedicated warps.yml file via a new WarpsManager class, preventing mixing warps with player homes and enabling global warp management.
Fixed warp cooldown timing: Warp cooldown is now correctly handled in seconds internally and compared against System.currentTimeMillis() in milliseconds, with proper cooldown messages showing time left.
Registered event listeners: Added PlayerEventListener to properly handle PlayerTeleportEvent and PlayerDeathEvent for tracking last player locations used by /back.
New Features Multi-world spawn support: Spawn points can be set and saved per world. /setspawn sets spawn for the current world, and /spawn teleports to the spawn of the player’s current world.
Added /homes command: Lists all homes a player has set.
Added /warps command: Lists all global warps available.
Added /tpdeny command: Allows players to deny incoming teleport requests.
Added tab completion: Commands /home, /delhome, /warp, /delwarp, /tpask, and /tpahere now support tab completion for easier usage.
Added permission nodes for all commands: Each command has a dedicated permission node prefixed with essentials999. for fine-grained permission control.
Async saving of homes and warps: Saving of homes and warps to disk is now done asynchronously to improve server performance.
Improvements Teleport safety checks: Teleports now check if the destination location is safe (not inside blocks) when safe-teleport is enabled in config.
Cooldown feedback: Players receive a message showing how many seconds remain before they can use /warp again.
Improved teleport request management: Teleport requests can be accepted or denied, with appropriate messages sent to both parties.
Cleaned up code structure: Refactored PlayerHomes and WarpsManager classes for clarity and separation of concerns.
Better command usage messages and permission feedback: Commands provide clear usage instructions and permission denial messages.
🎯 New Features Added Warp System with /warp
and /setwarp commands Implemented cooldown system for warps (configurable in config.yml, default 10 seconds) Added teleport request system with: /tpask - Request to teleport to another player /tpahere - Request player to teleport to you /tpaccept - Accept pending teleport requests OP-Only Restrictions: /setwarp now requires OP status Added permission validation for admin commands ⚙️ Configuration Changes Added warp-cooldown setting in config.yml Warp locations are now stored in homes.yml 📝 Additional Notes All new commands include detailed usage messages Players receive clear feedback for every action Teleport safety checks ensure safe chunk loading 🛠️ Technical Improvements Refactored command handling system Optimized warp cooldown tracking Improved teleportation reliability added 🔙 Back Command: /back teleports players to their last location after death or teleportation. Permission: essentials999.back (default: true). 📍 Spawn Commands: /setspawn (OP-only) sets the world’s spawn point. /spawn teleports players to spawn (permission: essentials999.spawn). ⚙ Configurable Settings: Adjust max-homes and enable/disable safe-teleport in config.yml. Auto-saves player home data to homes.yml.
the first release
