Описание
# 🍃 EssentiaX
**EssentiaX** is a versatile Minecraft plugin that **enhances server functionality with teleportation, homes, AFK management, time voting, messaging, and more**.
Fully configurable through `config.yml` and supports **multi-language messages** via JSON language files.
---
## ⚙️ Features
- 🏠 **Homes system**: Set and teleport to multiple homes with configurable cooldowns and stand-still times
- 🌀 **Spawn & SpawnPoint**: Teleport to world spawn or personal spawn points with safety checks
- ↔️ **TPA system**: Send, accept, and deny teleport requests with automatic expiration and cooldowns
- ⏪ **Back command**: Return to last death point
- ⏰ **Time voting**: Players can start votes to change the time of day (`/day`, `/noon`, `/morning`, `/night`)
- 💬 **Messaging system**: Private messages with `/msg` and `/reply`
- 🔇 **Mute & FullMute**: Temporarily or permanently mute players (public & private chat)
- 💤 **AFK system**: Automatic AFK detection, AFK spots, and optional action bar messages
- 🗨️ **MOTD messages**: Custom welcome messages for first-time and returning players
- 🌐 **Automatic language support**:
- Loads the correct language file based on the **player's client language**
- Supports **all included languages out of the box**
- Still fully **modifiable** by editing the JSON language files
- ⏳ **Configurable cooldowns and stand-still times** for commands
- ⚡ Lightweight and optimized for server performance
- 🗣️ **Announcement**: Broadcast server-wide messages with custom colors and prefixes.
- 🌍 **RTP**: Teleport to a random location within configured boundaries.
- 🎮 **Gamemode Switching**: Change your gamemode quickly with shorter commands.
- 👻 **Vanish Mode**: Become invisible to other players while maintaining control.
---
## Default Config ##
config.yml
```yaml
# ==== EssentiaX-Config ====
# ==== Spawn ====
spawn:
enabled: true
cooldown: 0
stand-still-time: 5
# ==== Home ====
home:
enabled: true
max-homes: 3
cooldown: 0
stand-still-time: 5
# ==== Teleportation ====
tpa:
enabled: true
cooldown: 10
stand-still-time: 5
back:
enabled: true
cooldown: 10
stand-still-time: 3
# ==== Chat Management ====
reply:
enabled: true
mute:
enabled: true
fullmute:
enabled: true
chat:
private:
prefix: "&7"
message: "&7"
# ==== AFK System ====
afk:
enabled: true
afk-delay: 5
afkspot:
enabled: false
actionbar:
enabled: true
server-type: paper # options: paper, purpur, folia, spigot, bukkit
countdown:
color: "§e"
# ==== MOTD ====
motd:
enabled: true
overwrite-languagefile-first-join: false
first-join: "§aWelcome to the server, {player}!"
overwrite-languagefile-join: false
join: "§eWelcome back, {player}!"
# ==== TimeVote ====
timevote:
duration: 60
percent: 50
day:
enabled: true
noon:
enabled: true
morning:
enabled: true
night:
enabled: true
# ==== Performance ====
despawn:
items:
enabled: true
time: 300
xp:
enabled: true
time: 300
# ==== Spawnpoint ====
spawnpoint:
enabled: true
cooldown: 0
stand-still-time: 5
# ==== RTP ====
rtp:
enabled: true
min-x: -1000
max-x: 1000
min-y: -1000
max-y: 1000
# ==== Vanish ====
vanish:
enabled: true
leftMessage: true
invisible: true
fly: true
block-collision: true
hideFromTab: true
# ==== Announcement ====
announcement:
prefix:
text: "Announcement"
color: "AQUA"
```
en_us.json
```json
{
"spawn": {
"wait": "§cWait %seconds% seconds before using /spawn again.",
"stand": "§aStand still for %seconds% seconds to teleport to spawn...",
"canceled": "§cTeleport cancelled!",
"teleported": "§aTeleported to spawn!"
},
"home": {
"wait": "§cWait %seconds% seconds.",
"stand_set": "§aStand still for %seconds% seconds to set home %home%...",
"set": "§aHome %home% set!",
"stand_tp": "§aStand still for %seconds% seconds to teleport to home %home%...",
"tp": "§aTeleported to home %home%!",
"missing": "§cHome %home% does not exist!",
"max": "§cMaximum homes reached (%max%)",
"canceled": "§cTeleport cancelled!",
"canceled_set": "§cSetting home cancelled!"
},
"afk": {
"start": "§eAFK activating in %seconds% seconds... Stand still and avoid damage!",
"now": "§aYou are now AFK!",
"canceled_move": "§cAFK cancelled because you moved!",
"canceled_damage": "§cAFK cancelled due to damage!",
"not_afk": "§cYou are no longer AFK!",
"actionbar": "§7You are AFK!",
"countdown": "§7AFK in %seconds%..."
},
"afkspot": {
"set": "§aAFK spot set!",
"delete": "§cAFK spot deleted!",
"usage": "§cUsage: /afkspot "
},
"motd": {
"first_join": "§aWelcome to the server, {player}!",
"join": "§eWelcome back, {player}!"
},
"back": {
"stand": "§aStand still for %seconds% seconds to teleport to your last death point...",
"tp": "§aTeleported to your last death point!",
"canceled": "§cYou moved! /back cancelled.",
"cooldown": "§cWait %seconds% seconds before using /back again.",
"not_found": "§cNo death point found!"
},
"tpa": {
"sent": "§aTeleport request sent to %player%!",
"receive": "§e%player% wants to teleport to you. Type /tpaccept or /tpdeny",
"expired_sender": "§cYour teleport request to %player% has expired.",
"expired_target": "§cTeleport request from %player% has expired.",
"accept": "§aYou accepted the teleport request from %player%!",
"deny": "§aYou denied the teleport request from %player%!",
"denied_sender": "§c%player% denied your teleport request.",
"stand": "§aStand still for %seconds% seconds to accept teleport...",
"canceled": "§cTeleport cancelled! Requester moved."
},
"mute": {
"disabled": "§cMute system is disabled.",
"muted": "§aPlayer %player% has been muted!",
"unmuted": "§aPlayer %player% has been unmuted!",
"not_muted": "§cPlayer %player% is not muted.",
"usage_mute": "§eUsage: /mute ",
"usage_unmute": "§eUsage: /unmute ",
"invalid_time": "§cInvalid time! Use a number in seconds or 'infinite'.",
"not_found": "§cPlayer not found!"
},
"msg": {
"from": "%prefix%%player% whispers to you: %msgcolor%%message%",
"to": "%prefix%You whisper to %player%: %msgcolor%%message%",
"disabled": "§cPrivate messages are disabled.",
"usage": "§eUsage: /msg ",
"offline": "§cThat player is not online."
},
"reply": {
"disabled": "§cReply command is disabled.",
"usage": "§eUsage: /reply ",
"no_target": "§cNo player to reply to.",
"offline": "§cPlayer is no longer online.",
"from": "%prefix%[From %player%]: %msgcolor%%message%",
"to": "%prefix%[To %player%]: %msgcolor%%message%"
},
"timevote": {
"start": "§e%player% wants to change the time to %time%! Use /vote to approve.",
"success": "§aTime has been changed to %time%!",
"fail": "§cTime change to %time% failed.",
"already": "§cThere is already a time vote in progress.",
"disabled": "§cThis time change is disabled on this server.",
"noperm": "§cYou do not have permission to start this time vote.",
"no_vote": "§cThere is no active time vote.",
"already_voted": "§cYou have already voted.",
"voted": "§aYou voted to approve the time change!"
}
}
```
---
## 📢 Usage (; ≙ Alias)
| Command | Permission | Default | Description |
|------------------|----------------------|--------|--------------------------------------------------|
| 🌍/spawn | essentia.spawn | ✅true | Teleports you to the world spawn after standing still |
| 🏠/spawnpoint | essentiax.spawnpoint | ✅true | Sets your personal spawn point |
| 🏡/sethome | essentia.sethome | ✅true | Sets a home after standing still |
| 🏡/home | essentia.home | ✅true | Teleports to a previously set home |
| 📩/tpa | essentia.tpa | ✅true | Request to teleport to another player |
| ✅/tpaccept | essentia.tpaccept | ✅true | Accept a teleport request |
| ❌/tpdeny | essentia.tpdeny | ✅true | Deny a teleport request |
| ↩️/back | essentia.back | ✅true | Teleports you to your last death point |
| ✉️/msg | essentia.msg | ✅true | Send a private message |
| 💬/reply | essentia.reply | ✅true | Reply to the last message received |
| 🔇/mute | essentia.mute | ✅true | Mute a player for a set time |
| 🔊/unmute | essentia.unmute | ✅true | Unmute a player |
| 🔕/fullmute | essentia.fullmute | ✅true | Fully mute a player (private + public) |
| 💤/afk | essentia.afk | ✅true | Set yourself AFK |
| 📍/afkspot [delete]| essentia.afkspot | 🔒op | Set or delete AFK spot |
| 🛠️/adminwarp | essentia.adminwarp | 🔒op | Teleport to any player as an operator |
| 🔙/adminwarpback | essentia.adminwarp | 🔒op | Return to your previous location |
| 🌞/day | essentia.day | 🔒op | Start a vote to change time to day |
| ☀️/noon | essentia.noon | 🔒op | Start a vote to change time to noon |
| 🌅/morning | essentia.morning | 🔒op | Start a vote to change time to morning |
| 🌙/night | essentia.night | 🔒op | Start a vote to change time to night |
| 🗣️/announce [color] | essentia.announce | 🔒op | Create a cool Announcement |
| 🌍/rtp | essentia.rtp | ✅true | Vote to accept the current time change |
| 🎮/gm | essentia.gamemode | 🔒op | Changegamemode with shorter keystrokes like c and 1 for creative, etcc |
|||||
| 👻/vanish | essentia.vanish | 🔒op | Become invisible to other players while maintaining control. |
| 🧹/clearchat | essentia.extras.clearchat | 🔒op | Clears the chat manually or automatically |
---
## 📁 Installation
1. Download the latest version of **EssentiaX.jar**
2. Place it in your server’s `plugins/` folder
3. Start or reload your server
4. Edit `config.yml` to configure features and behavior
5. *(Optional)* Edit language files (e.g., `en_us.json`, `de_de.json`) for custom messages
6. *(Optional)* Download Addons [here]([https://modrinth.com/collection/qDGnEV8o])
> ✅ The plugin automatically detects and applies the correct language based on the client’s language settings.
---
## 🧰 Compatibility
- ✅ Compatible with **Bukkit**, **Spigot**, **Paper**, **Purpur**, and **Folia**
- 🧱 Built for **Minecraft 1.8.8+**
- ☕ Requires **Java 8+**
⚠️ Please note: New features for legacy versions will be delayed. Versions 1.18+ will always be up to date.
---
## 📜 License
This project is licensed under **ARR (All Rights Reserved)**.
Usage, modification, and distribution without permission are not allowed.