XinghaiMC-Report

# XinghaiMC-Report
## Introduction
A simple and clear reporting plugin.
## Command
/report Player Reason
– Report Player

/handle
– View list of reported players

/handle ID
– Report processing complete.
## Permissions
xinghaimc.report
– Permissions used for reports

xinghaimc.report.handle
– Permissions used to handle reports
## Download
Github Releases (recommended)
Github Actions
MineBBS

Xiaoklunar Shulker

# XiaoklunarShulker

Two quality-of-life features for shulkers: **open them directly from your inventory** and optionally **vacuum overflow pickups into shulkers you’re carrying**.

## 1) Open Shulkers Directly From Inventory

Right-click a **shulker box item** inside your inventory to open it.

**Highlights**
– Opens from inventory (no placement required)
– Prevents **shulker-in-shulker** nesting exploits
– Plays open/close sounds
– You can switch to another shulker while one is open
*(auto-closes the current one, then opens the clicked one)*

**Permission**
– `xiaoklunarshulker.open`

## 2) Shulker Vacuum (Overflow Pickup Helper)

When enabled: if an item pickup would **overflow** your inventory, the plugin tries to store the overflow into **shulkers in your inventory**.

**Safety**
– Automatically disabled while a shulker GUI session is open

**Commands**
– `/shulkervacuumstart` Enable vacuum overflow storing
– `/shulkervacuumstop` Disable vacuum overflow storing
– `/shulkervacuumstatus` Show current vacuum status

**Permission**
– `xiaoklunarshulker.vacuum.toggle`

## Permissions

| Permission | Description |
|—|—|
| `xiaoklunarshulker.open` | Allows opening shulkers directly from inventory |
| `xiaoklunarshulker.vacuum.toggle` | Allows toggling the shulker vacuum feature |

Xiaoklunar Ghast Speed

## XiaoklunarGhastSpeed

### What this plugin is

A **craft-only** Paper plugin that lets players craft **speed harnesses** for **Happy Ghasts**, then apply a configured speed boost by equipping the harness on the ghast.

## Features

### ✅ Craftable Speed Harness Tiers

Adds 5 tier recipes that extend the vanilla Harness recipe by filling the **bottom row** with one material:

* **Gold Ingots** → **Speed I**
* **Iron Ingots** → **Speed II**
* **Emeralds** → **Speed III**
* **Diamonds** → **Speed IV**
* **Netherite Ingots** → **Speed V**

**Harness color** is determined by the **wool color** used in the middle of the recipe.

### ✅ Ultimate Speed Harness (Special Craft)

Adds a shapeless “ultimate” craft:

**Requires:**

* 1× Speed I harness
* 1× Speed II harness
* 1× Speed III harness
* 1× Speed IV harness
* 1× Speed V harness
* **4× Phantom Membrane**

**Output:**

* Harness with lore: **`ᴜʟᴛɪᴍᴀᴛᴇ ꜱᴘᴇᴇᴅ`**
* Internally treated as **tier 7**

### ✅ Applies Speed to Happy Ghasts

* **Right-click a Happy Ghast** while holding a speed harness to apply the tier speed.
* If the harness has **no tier**, the plugin **removes** any previously applied boost and restores base speed.

### ✅ Restores Speed When Harness Is Removed

* If the harness is **sheared off** the Happy Ghast, the plugin restores the ghast’s **original speed values**.

### ✅ Configurable Speed Values

You can adjust the actual speed values per tier in:

`plugins/XiaoklunarGhastSpeed/config.yml`

Example defaults:

“`yml
speeds:
1: 0.10
2: 0.15
3: 0.20
4: 0.25
5: 0.30
7: 0.475
“`

### ✅ Visual styling

* Harnesses have a **glint** (hidden enchant) and show lore in **small caps**.
* Tier harness lore shows **Roman numerals** like vanilla enchants (Speed I–V).
* Ultimate shows **`ᴜʟᴛɪᴍᴀᴛᴇ ꜱᴘᴇᴇᴅ`**.

Xiaoklunar Fly

# ✨ Xiaoklunar Fly (ElytraFlight)

> **Xiaoklunar Fly** is a premium-style Elytra flight plugin that gives players **creative-like flight** without removing balance or immersion.
> Perfect for servers that want flight to feel **powerful, fair, and non-cheaty**.

This plugin is ideal for:

* 💰 Monetizing flight permissions
* 🌍 Controlled flight in specific worlds (spawn, hub, RPG zones)
* ⚖️ Balanced survival gameplay using Elytra durability

## 🚀 What Does Xiaoklunar Fly Do?

> Xiaoklunar Fly allows players to toggle **creative-style flight** using `/elytrafly`,
> **only if all required conditions are met**.

Once enabled, the plugin **checks every second** that the player:

* Is in an **allowed world**
* Has an **Elytra equipped**
* Has the **required permission**
* Is **actively flying**

> If **any** requirement fails, flight is **immediately disabled** and the player is notified.

This behavior is similar in spirit to plugins like **EssentialsX.Flight**, but designed specifically around **Elytra-based balance and monetization**.

## ⭐ Core Features

### 🪽 Creative-Like Flight (Not Vanilla Gliding)

> Players fly **exactly like creative mode**.

* No awkward Elytra gliding mechanics
* Smooth, controllable, and intuitive movement

### 🔐 Permission-Based (Perfect for Monetization)

> Xiaoklunar Fly uses **one configurable permission node**.

* Sell access via **ranks, crates, or stores**
* Fully compatible with **LuckPerms** and other permission plugins

> 💡 **Example:**
> Sell **“Elytra Flight Access”** as a premium perk.

### 🌍 World-Restricted Flight

> You decide **where flight is allowed**.

Examples:

* Only in **spawn**
* Only in **hub**
* Or **every world** for full freedom

> Flight is **automatically disabled** when a player leaves an allowed world.

### 🛡️ Elytra Required (No Elytra = No Flight)

> Elytra is **required at all times**.

* Must be worn in the chest slot
* Removing it instantly stops flight
* Keeps Elytra meaningful and relevant

### 🔧 Configurable Elytra Durability Damage

> Elytra takes durability damage **every second while flying**.

* Damage applies **only while the player is actively flying**
* Fully configurable in `config.yml`

This ensures:

* Flight feels powerful
* Elytra still has a **real cost**
* No infinite free flight abuse

### ⏱️ Constant Safety Checks (Every Second)

> The plugin continuously verifies:

* World validity
* Elytra equipped
* Permission still present
* Player still flying

This guarantees:

* ❌ No exploits
* ❌ No bypassing restrictions
* ✅ Clean, predictable behavior

### 🧾 Clean & Stylish Messaging

> Fully branded as **Xiaoklunar Fly**.

* All messages use **small-caps font** for a premium look
* Color-code friendly
* Messages trigger **only once per stop reason** (no spam)

## 🧑‍💻 How Players Use It

> Using Xiaoklunar Fly is simple:

1. Equip an **Elytra**
2. Be in an **allowed world**
3. Have the **permission**
4. Run:

“`text
/elytrafly
“`

> Flight toggles **ON / OFF instantly**.

## ⚙️ Example Configuration

“`yaml
allowedWorlds:
– “spawn”
– “hub”

permissionNode: “xiaoklunar.fly”

elytraDamagePerSecond: 1
“`

> Adjust worlds, permissions, and Elytra damage to fit your server’s balance.

## 🧠 Why This Plugin Is Perfect

* ✅ Feels like creative flight
* ✅ Still balanced and survival-friendly
* ✅ Excellent for server monetization
* ✅ Lightweight and stable

Xiaoklunar Auction House

# Auction

A clean, GUI-first Auction House plugin for **Paper 1.21+** using **Vault** for economy.
Designed to be lightweight, permission-minimal, and easy for both players and developers.

## Requirements

– **Paper**: 1.21+
– **Vault** (plugin)
– **A Vault-compatible economy plugin** (e.g., EssentialsX)

> Vault does **not** store balances. You must install an economy provider.

## Commands

### `/ah`
Opens the global Auction House GUI.

### `/ah sell `
Lists the item currently in the player’s hand for sale.

– Item must not be `AIR`
– Item must not be blocked by config
– Price must be within configured limits
– Listing limit enforced (normal vs premium)

### `/ah storage`
Opens **Auction Storage**, showing:
– Active listings (click to cancel)
– Cancelled / expired returns (click to claim)
– Delivery overflow items (when inventory was full on purchase)

### `/ah resell`
Relists eligible stored items (premium feature + cooldown).

### `/ah `
Opens a view showing **only listings by that exact seller name**.

– Case-sensitive matching
– Does not validate whether the name belongs to a real player
– If no listings exist, GUI opens empty

### `/ah search [maxPrice]`
Searches auction listings by keyword.

– No `minecraft:` namespace required
– Matches:
– Material key/name (e.g., `iron_ingot`)
– Display name (custom items like “Bulldozer” / “Drill”)

Examples:
– `/ah search iron`
– `/ah search net`
– `/ah search note block 500` *(premium price filter)*

## Premium Features

Permission:
– `auctionhouse.premium`

Premium unlocks:
– Increased listing limit (default: 20 vs 10)
– `/ah resell` and “Relist All” button
– Advanced search price filter (max price argument)
– Cooldown on relist (default: 60s)

Relist spam protection:
– “Wait X seconds” message is throttled to **max once per second** per player.

## GUI Overview

### Auction House GUI
– Paginated
– Edge glass border
– Buttons:
– **Refresh** (nether star)
– **Storage** (chest)
– **Prev/Next page** arrows (hidden when not usable)

Listing lore formatting:
– Seller name: **Yellow**
– Price: **Green**
– Expires in: **Red**
– Lore is **non-italic**

### Confirm Purchase GUI
– Click listing → confirm screen:
– Green: Buy
– Red: Cancel (returns to `/ah`)

Purchase logic:
– Checks balance **before** opening confirmation
– On successful buy:
– Money is withdrawn
– Item delivered to inventory
– If inventory full → moved to storage as delivery overflow

### Auction Storage GUI
– Title: **Auction Storage**
– Shows:
– Active listings (cancelable)
– Cancelled returns
– Expired returns
– Overflow deliveries
– Back arrow returns to main `/ah`

Status display:
– Cancelled: red
– Expired: red
– Delivery: yellow

## Sounds

– Successful listing: “ding” sound
– Listing denied (limit reached / not allowed): villager “no”
– Successful purchase: villager “yes”
– Seller receives notification + sound on successful sale

## Configuration

Key config options include:
– Listing limits for normal/premium
– Maximum sell price
– Premium relist cooldown
– Blocked item list
– GUI sound toggles (if present in your build)

*(Exact keys depend on your current shipped config.yml.)*

## Installation

1. Drop into `plugins/`:
– Vault
– Economy plugin (e.g., EssentialsX)
– Xiaoklunar Auction
2. Start server
3. Configure `config.yml`
4. Assign premium permission (optional)
– Example (LuckPerms):
“`
/lp group premium permission set auctionhouse.premium true
“`

## Troubleshooting

### Vault installed but economy not working
Vault needs an economy provider (EssentialsX, etc.). Check console for economy registration logs.

### “Invalid plugin.yml”
YAML must use spaces (no tabs) and usage strings should be quoted.

Have fun

xHubBlocks

# 🧱 xHubBlocks V2
### The Ultimate Lobby Practice Plugin
**Infinite blocks. Auto-despawn. Database support.**

![Version](https://img.shields.io/badge/Version-2.0.0-blue?style=for-the-badge) ![Support](https://img.shields.io/badge/Minecraft-1.8.8%2B-green?style=for-the-badge) ![Storage](https://img.shields.io/badge/Storage-H2%20%7C%20MySQL-orange?style=for-the-badge)

__UPDATE COMING SOON!__

## 👋 Overview
**xHubBlocks** is a lightweight but powerful plugin designed for Hubs and Lobbies. It gives your players an infinite stack of blocks to practice bridging, clutching, or building while waiting in the lobby.

The best part? **The blocks disappear automatically** after a configurable time, keeping your lobby clean and lag-free.

### 🔥 What’s New in V2?
We have completely rewritten the core to include professional features:
* **Persistent Data:** Blocks placed statistics are now saved forever.
* **Database Support:** Built-in support for **H2** (local, no setup) and **MySQL** (for networks).
* **Developer API:** Hook your own plugins into xHubBlocks.
* **High Performance:** Powered by HikariCP for database connections.

## ✨ Features
* **♾️ Infinite Items:** Players get a stack of blocks that never runs out.
* **✨ Auto-Despawn:** Blocks vanish after X seconds with a satisfying particle effect.
* **🔒 Secure:** Prevents players from dropping the block or moving it in their inventory.
* **🎨 Fully Configurable:** Customize the material, name, lore, slot, and messages.
* **📊 PlaceholderAPI:** Display stats on scoreboards or holograms.
* **⚡ Legacy Support:** Works flawlessly from **1.8.8** up to the latest versions.

## 💾 Database & Storage

xHubBlocks V2 supports two storage types defined in `config.yml`:

1. **H2 (Default):** Zero configuration required. Stores data in a local file. Perfect for single servers.
2. **MySQL:** Connect to an external database. Ideal for networks or if you want to display stats on a website.

“`yaml
storage:
type: H2 # Or MYSQL
mysql:
host: “localhost”
port: 3306
database: “xhubblocks”
# …
“`

## 🏀Images
![imagen1](https://cdn.modrinth.com/data/cached_images/3972395f3d9668faad9007f5efc7a08253cde970_0.webp)
![imagen2](https://cdn.modrinth.com/data/cached_images/6d47fe68dd224937901ca1748e3a8c9dbe87c37d.png)
![imagen3](https://cdn.modrinth.com/data/cached_images/da50f9588ac8f7219c1eb34759146fd7b31506ca.png)

## 🚀 Commands & Permissions
*The commands are editable.*

| Command | Permission | Description |
| :— | :— | :— |
| `/xhubblocks` | `xhubblocks.admin` | View plugin info and help. |
| `/xhubblocks reload` | `xhubblocks.reload` | Reload the configuration file. |
| `/blocks shop` | `editable` | Block store. |

## 📊 Placeholders
Requires **PlaceholderAPI**.

* `%xhubblocks_placed_player%` – Total blocks placed by the player (Saved in DB).
* `%xhubblocks_placed_session%` – Blocks placed in the current session.
* `%xhubblocks_placed_total%` – Total blocks placed by everyone on the server.

## 👨‍💻 Developer API
Want to use xHubBlocks stats in your own plugin? It’s easy.

**1. Get the instance:**
“`java
if (Bukkit.getPluginManager().getPlugin(“xHubBlocks”) != null) {
xHubBlocksAPI api = xHubBlocksAPI.getApi();

// Get stats
int total = api.getPlayerTotalPlaced(player.getUniqueId());
}
“`

**2. Maven/Gradle:**
You can add the plugin as a dependency to your project.

## 📥 Installation
1. Download `xHubBlocks.jar`.
2. Drop it into your server’s `plugins` folder.
3. Restart your server.
4. (Optional) Edit `config.yml` to change the block style or database settings.
5. Enjoy!

![Banner](https://cdn.modrinth.com/data/cached_images/108319d581434f2a2c3f01f2e6139bdba5b54200_0.webp)

Created with ❤️ by xPlugins

xHub

# 🛡️ xHub Core (Beta)
### The Ultimate All-in-One Lobby Solution | 1.20+

![Version](https://img.shields.io/badge/Version-v1.0.5-blue?style=for-the-badge&logo=rocket)
![Minecraft](https://img.shields.io/badge/Minecraft-1.20%2B-green?style=for-the-badge&logo=minecraft)
![Author](https://img.shields.io/badge/Dev-xPlugins-orange?style=for-the-badge&logo=github)
![Brand](https://img.shields.io/badge/Brand-xPlugins-purple?style=for-the-badge&logo=discord)

**xHub** is a high-performance, premium core designed to replace multiple lobby plugins.
It now includes advanced features like Parkour, Cosmetics, Developer API, and dynamic permissions.

Discord Support • Website

![Banner](https://cdn.modrinth.com/data/cached_images/67f8620834f9a2c2d0a6763ce130a5c5d5518fe0.jpeg)

## ✨ Key Features (v1.0.1)

* **🏃 Parkour System:** Automatic checkpoints, rewards, void detection, and Double Jump.
* **🎩 Cosmetics:** Particle trails and hats with a GUI menu.
* **💻 Developer API:** `xHubAPI` class for easy integration with other plugins.
* **🎨 Full RGB/Hex Support:** Use `&#RRGGBB` colors anywhere.
* **📂 Modular Menu System:** Create unlimited GUI menus using YAML files.
* **📊 Animated Boards:** Flicker-free Scoreboard and Tablist (PAPI supported).
* **🎒 Hotbar Manager:** Custom items on join (Compass, PvP Sword, Cosmetics).
* **📢 Chat Manager:** Formatting with Rank support (`[Admin] Player: Hello`).
* **🤖 Discord Logs:** Built-in Webhooks for Join/Quit events.

## 🚀 Installation

1. Download `xHub-1.0.0.jar`.
2. Place it in your server’s `plugins` folder.
3. **(Required)** Install PlaceholderAPI for variables.
4. **(Optional)** Install Vault for economy rewards.
5. Restart the server.

## 📂 Directory Structure

“`text
plugins/xHub/
├── config.yml <-- Main settings └── menus/ <-- Drop your menu files here ├── principal.yml <-- Main Menu ├── selector.yml <-- Server Selector ├── socials.yml <-- Social Media └── cosmetics.yml <-- Cosmetics Menu ``` --- ## 📜 Commands & Permissions | Command | Permission | Description | | :--- | :--- | :--- | | `/xhub setlobby` | `xhub.admin` | Sets the spawn point. | | `/xhub spawn` | `xhub.spawn` | Teleports you to the lobby spawn. | | `/xhub reload` | `xhub.admin` | Reloads all configs and menus. | | `/xhub menu ` | `xhub.menu` | Opens a specific menu. |
| `/xhub cosmetic` | `xhub.cosmetic` | Manage cosmetic effects. |

> **Note:** Permissions can be disabled in `config.yml` by setting them to `false`.

## 👨‍💻 Developer API

xHub exports a static API class for developers to hook into the core:

“`java
// Teleport a player to the Hub
xHubAPI.teleportToSpawn(player);

// Check if player is doing parkour
if (xHubAPI.isInParkour(player)) {
// do something
}

// Activate a cosmetic trail
xHubAPI.setTrail(player, “FLAME”);
“`

## 🛠️ Default Configuration

Below is the full generated `config.yml` file explaining every feature.

“`yaml
# _
# __ __ / /_ _| |__
# / // /_/ / | | | ‘_
# > Developed with ❤️ by **xPlugins.
Copyright** © 2026 xPlugins. All rights reserved.

Xhomes

### Xhomes – Your Personal Home Management Plugin for Minecraft

**Xhomes** is an essential plugin designed to enhance your Minecraft experience by allowing players to seamlessly set, manage, and teleport to personal homes. With its user-friendly GUI and intuitive functionality, Xhomes simplifies home management and provides an engaging way to navigate the game world.

## Key Features:

– **Set Home**: Easily set your home location using the command `/sethome [homename]`, enabling quick travel back to your favorite spots.

– **Home GUI**: Access a visually appealing GUI to view and select homes, featuring slots filled with blue beds for a straightforward teleportation interface.

– **Teleportation Countdown**: Enjoy a 5-second countdown before teleportation, accompanied by the message: “Teleporting in 5 seconds, don’t move!” to build anticipation.

– **Movement Cancellation**: Teleportation is canceled if the player moves during the countdown, ensuring safe and accurate arrival at the desired location.

– **Delete Home**: Remove homes easily with the command `/delhome [homename]`.

– **Configurable Limits and Tiers**: Server owners can configure the maximum number of homes players can set based on their permission tier:
– **Tier 1 (xhomes.hometier1)**: 2 homes
– **Tier 2 (xhomes.hometier2)**: 4 homes
– **Tier 3 (xhomes.hometier3)**: 6 homes
– **Tier 4 (xhomes.hometier4)**: 8 homes

These limits are fully configurable in the `config.yml` file.

– **Admin-Friendly Management**: Xhomes provides robust tools for server owners to oversee home settings and permissions, offering fine-grained controls for authorized players.

### LuckPerms Permissions:

– `/sethome`: `xhomes.sethome`
– `/delhome`: `xhomes.delhome`
– `/home`: `xhomes.home`
– Tier 1: `xhomes.hometier1` (2 homes)
– Tier 2: `xhomes.hometier2` (4 homes)
– Tier 3: `xhomes.hometier3` (6 homes)
– Tier 4: `xhomes.hometier4` (8 homes)

Elevate your Minecraft gameplay with **Xhomes**—your all-in-one home management solution!

### Source Code
Check out the source code on GitHub: Xhomes Repository

xHeadTurns

# 💀 xHeadTurns
### Advanced Floating Heads, Holograms & Animations
![example](https://cdn.modrinth.com/data/cached_images/3901cf199b98fc1ce3b00a8f10d97528ee82fba6.png)

![Discord](https://discord.gg/mNdxNVx6cU)
![Download](https://modrinth.com/plugin/xheadturns)
![Version]()

## 📝 Overview

**xHeadTurns** is the ultimate solution for decorating your server lobbies, hubs, and spawn areas. Bring your server to life with fully interactive **Floating Heads** that support custom textures, real-time rotation, scaling, and dynamic holographic displays.

Now with a **Full In-Game Editor**, you can modify every property of your heads without ever touching a configuration file.

## ✨ Key Features

* **🎮 Full In-Game Editor:** Modify scale, speed, textures, and hologram lines in real-time with `/xhte`.
* **🎨 Custom Textures:** Support for **Base64** values (Minecraft-Heads) and **Player Names**.
* **🔄 Dynamic Rotation:** Fully customizable rotation speed and manual angle (Yaw/Pitch) control.
* **💬 Advanced Holograms:**
* Multi-line support with **HEX Colors** (e.g., `&#a7c7e7`).
* **PlaceholderAPI** support (updates based on the nearest player).
* Customizable backgrounds (RGB + Opacity), billboards, and shadows.
* **✨ Particle Animations:** Styles like `HELIX` and `SPHERE` with custom particle types.
* **⚡ Interactivity:** Execute **Console** or **Player** commands on click with per-head cooldowns.
* **🌍 Multi-Language:** 100% translatable (English and Spanish included).

## 🛠️ Commands & Permissions

| Command | Description | Permission |
| :— | :— | :— |
| `/xht help` | Shows the help menu with all commands. | `xheadturns.help` |
| `/xht list` | Opens a GUI with all active floating heads. | `xheadturns.list` |
| `/xhtc ` | Spawns a head at your target location. | `xheadturns.create` |
| `/xhtd ` | Deletes a specific floating head. | `xheadturns.delete` |
| `/xhtm ` | Moves a head to your current target location. | `xheadturns.move` |
| `/xhte ` | **Advanced Editor:** Edit any property in-game. | `xheadturns.edit` |
| `/xht reload` | Reloads configurations and head data. | `xheadturns.reload` |

## ⚙️ Advanced Editing Examples

Using the new **Editor System**, you can customize your heads on the fly:

“`bash
# Change the scale of a head
/xhte MyHead head scale 2.0

# Add a new line to a hologram
/xhte MyHead hologram add &fVisit our &b/store

# Change hologram background to a semi-transparent blue
/xhte MyHead hologram background 0,0,255 100

# Update head texture to a player’s skin
/xhte MyHead head texture Dream
“`

> ## 🚀 Installation
1. Download the xHeadTurns .jar.
2. Upload it to your /plugins/ folder.
3. Requirement: Ensure you have PlaceholderAPI installed for dynamic names.
– Restart the server.

> Use /xhtc to start creating your first floating heads!

> ## 🤝 Support & Community
Need help? Found a bug? Join our Discord server!

Join Discord Server

Plugin developed with ❤️ by xPlugins x WillfryDev

Copyright © 2026 xPlugins. All rights reserved.

XGamemode

![XGamemode Logo](https://cdn.modrinth.com/data/cached_images/1dcaf5510526bbd1af3e3b907fea79d40735b3eb.png)
### “*You’re not switching modes, you’re switching dimensions.*”

~~*2000 Downloads?! Thanks!*~~

# 1 Feature

## 1.1 Offline Player

You can change the gamemode of a player, **even he (or she) was offline**.

## 1.2 Permissions

Allow permission group plugins (_like Luckperms_) to manage **which gamemodes can be switched to** and **which gamemodes cannot be switched to**.

_e.g. Allow to switch to survival mode but not to any other mode._

## 1.3 Alias

**/gamemode** is simplified to **/gm** and **/g**.

_(of course you can still use /gamemode)_

## 1.4 Cross-Server Storage

Support **MySQL** and **SQLite** storage backends. Player gamemodes are saved and synchronized across multiple servers in a network.

## 1.5 Folia Support

**Fully compatible with Folia servers** — using region-based scheduling for optimal performance.

## 1.6 Lightweight

The Plugin size is only **~25 KB** and has **almost no impact** on server performance!

# 2 Caution

## 2.1 Shortcut Keys

If you need to use shortcut keys such as **F3+F4**, please install another plugin **F3NPerm**.

## 2.2 Versions

**1.8.X +**

**All Bukkit based server** (Paper, Spigot, Purpur, Folia, etc.)

# 3 Commands

“`markdown
– /xgamemode
– /xgamemode reload
– /gm
– /gm – /gm -all
– /gm -online
– /gm -offline

/g = /gm = /gamemode
/xg = /xgm = /xgamemode
“`

# 4 Permission Node

“`markdown
– xgamemode.survival
– xgamemode.creative
– xgamemode.adventure
– xgamemode.spectator
– xgamemode.others.survival
– xgamemode.others.creative
– xgamemode.others.adventure
– xgamemode.others.spectator
– xgamemode.reload
– xgamemode.admin
“`

# 5 Custom Config

## 5.1 Basic Settings

“`yaml
lang: en-US
“`

**Language** setting

“`yaml
default_gamemode: survival
“`

If a **new player joined your server**, **which gamemode should he (she) be**?

**survival**, **creative**, **adventure**, **spectator**

“`yaml
show_logo: true
“`

Show logo or not when plugin enabled.

**true**, **false**

“`yaml
debug: false
“`

Enable debug logging for troubleshooting.

**true**, **false**

## 5.2 Storage Configuration

“`yaml
storage:
type: yaml
“`

**Storage backend type**: **yaml**, **sqlite**, **mysql**

### SQLite Example

“`yaml
storage:
type: sqlite
# No additional config needed — data.db will be created automatically
“`

### MySQL Example

“`yaml
storage:
type: mysql
mysql:
host: localhost
port: 3306
database: minecraft
username: root
password: your_password
“`

## 5.3 Custom Messages

“`yaml
messages:
en-US: # Original en-US Language by Wind_Blood
reloaded: “&aXGamemode Reloaded!”
# ……
custom_lang: # Add Your Custom Language!
reloaded: “Thank you for using XGamemode!”
# ……
“`

**Customizable Messages**. You can add **your own new language** here!

## 5.4 An Example config.yml

“`yaml
lang: msgForMyServer
default_gamemode: survival
show_logo: false
debug: false
storage:
type: yaml
messages:
msgForMyServer:
reloaded: “很明显作者是中国人 会说中文很正常 然后我也不知道为什么我要在一堆英文里写一段中文 挺好笑的 哈哈哈 对了 看到我就是缘分 XGamemode 官方 QQ 反馈交流群:点击链接加入群聊【XGamemode 反馈群】:https://qm.qq.com/q/rpTk5LK7w4 欢迎加”
usage: “&cUsage: /gm [player/-all/-online/-offline]”
console_usage: “&cUsage: /gm
invalid_gamemode: “&cInvalid Gamemode!”
invalid_player: “&cInvalid Player!”
gamemode_self: “&aYour Gamemode Changed to {mode}!”
gamemode_all: “&aChanged All Player’s Gamemode to {mode}!”
gamemode_online: “&aAll Online Player’s Gamemode Changed to {mode}!”
gamemode_offline: “&aAll Offline Player’s Gamemode Changed to {mode}!”
no_permission: “&cYOU ARE NOT ALLOWED TO DO THAT!”
gamemode_other: “&a{player}’s Gamemode Changed to {mode}!”
gamemode_other_offline: “&a{player} (Offline)’s Gamemode Changed to {mode}!”
“`

# 6 Developer API (Async)

## Get Instance

“`java
Main plugin = Main.getInstance();
“`

## Get Player Gamemode

“`java
plugin.getPlayerMode(playerUUID).thenAccept(mode -> {
if (mode != null) {
// mode is GameMode.SURVIVAL, CREATIVE, ADVENTURE, or SPECTATOR
// Player is online or has saved data
} else {
// Player not found or no saved gamemode yet
}
});
“`

## Set Player Gamemode

“`java
plugin.setPlayerMode(playerUUID, GameMode.SURVIVAL).thenAccept(success -> {
if (success) {
// Gamemode changed and saved successfully
// Works for both online and offline players
} else {
// Failed to save (database error, etc.)
}
});
“`

## Listen to Gamemode Changes

“`java
@EventHandler
public void onGamemodeChange(GamemodeChangeEvent event) {
Player player = event.getPlayer(); // Online player only
GameMode oldMode = event.getOldMode();
GameMode newMode = event.getNewMode();
}
“`

> **Note:** All APIs are **fully async** and thread-safe. The `GamemodeChangeEvent` is only fired for **online players** when their mode is actually changed. The `getPlayerMode()` method returns `null` if the player has no saved gamemode data.

# 7 Reprint Post

www.minebbs.com/resources/xgamemode.11041

hangar.papermc.io/Wind_Blood/XGamemode

modrinth.com/plugin/xgamemode

# 8 Feedback

Just e-mail me with **[email protected]**. Thanks!