WeHeads
A Minecraft plugin for **Spigot/Paper/Folia (1.20+)** that allows players to get custom heads using Base64 textures.
## Features
– **Simple Base64 Support**: Direct Base64 texture injection into SkullMeta
– **Easy to Use**: Single command with Base64 texture input
– **Inventory Management**: Automatic overflow protection
– **Permission System**: Built-in permission controls
## Commands
### `/wehead give `
Give yourself a custom head using a Base64 texture string from minecraft-heads.com.
**Example:**
“`
/wehead give eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUv…
“`
## Permissions
| Permission | Description | Default |
|————|————-|———|
| `wehead.give` | Allows using `/wehead give` command | `op` |
## Installation
1. Download the plugin JAR file
2. Place it in your server’s `plugins/` folder
3. Restart your server
4. Plugin is ready to use!
## Requirements
– **Minecraft Version**: 1.20+
– **Server Software**: Spigot, Paper, or Folia
– **Java Version**: 21+
## Building from Source
“`bash
git clone https://github.com/wethink/we-heads.git
cd we-heads
mvn clean package
“`
The compiled JAR will be in the `target/` directory.
## Getting Base64 Textures
1. Visit [minecraft-heads.com](https://minecraft-heads.com)
2. Find the head you want
3. Copy the Base64 texture value
4. Use it with `/wehead give `
## Error Handling
– **Invalid Command**: Shows usage message
– **No Permission**: Permission denied message
– **Invalid Texture**: Error message with texture validation
– **Full Inventory**: Drops head on ground if inventory is full
## Support
For issues, feature requests, or contributions, please visit our GitHub repository.
## License
This project is licensed under the MIT License.
WeGuardian
# 🛡️ WeGuardian




Professional Punishment Management System for Minecraft Servers
by WeThink
—
## ✨ Features
### 🔨 Punishment System
– **Ban & TempBan** – Permanently or temporarily ban players
– **IP Ban & TempIP Ban** – Ban players by IP address with automatic IP resolution
– **Mute & TempMute** – Silence players permanently or temporarily
– **IP Mute & TempIP Mute** – IP-based muting system
– **Kick** – Instantly remove players from the server
### 🎮 Interactive GUI
– **Punishment GUI** – Beautiful and intuitive punishment selection interface
– **Duration Selector** – Easy-to-use duration selection with presets
– **History Viewer** – Browse punishment history with pagination
### 📊 Database Support
– **SQLite** – Zero-configuration local storage (default)
– **MySQL** – Scale to larger servers with MySQL support
– **HikariCP** – High-performance connection pooling
– **Caffeine Caching** – Lightning-fast data retrieval
### 🌐 Web Dashboard
– Built-in web panel for remote management
– REST API for custom integrations
– Configurable branding and appearance
### 🔗 Discord Integration
– Webhook logging for all punishments
– Batched messages to avoid rate limits
– Beautiful embed formatting
### ⚡ Performance
– **Folia Support** – Full compatibility with Folia servers
– **Async Operations** – Non-blocking database operations
– **Lazy GUI Initialization** – Optimized GUI performance
—
## 📥 Installation
1. Download the latest `WeGuardian.jar`
2. Place it in your server’s `plugins` folder
3. Restart your server
4. Configure `plugins/WeGuardian/config.yml`
—
## 📝 Commands
| Command | Description | Permission |
|———|————-|————|
| `/ban [reason]` | Permanently ban a player | `weguardian.ban` |
| `/tempban [reason]` | Temporarily ban a player | `weguardian.tempban` |
| `/unban ` | Unban a player | `weguardian.unban` |
| `/banip [reason]` | IP ban a player | `weguardian.banip` |
| `/tempbanip [reason]` | Temp IP ban a player | `weguardian.tempbanip` |
| `/unbanip ` | Unban a player’s IP | `weguardian.unbanip` |
| `/mute [reason]` | Permanently mute a player | `weguardian.mute` |
| `/tempmute [reason]` | Temporarily mute a player | `weguardian.tempmute` |
| `/unmute ` | Unmute a player | `weguardian.unmute` |
| `/muteip [reason]` | IP mute a player | `weguardian.muteip` |
| `/tempmuteip [reason]` | Temp IP mute a player | `weguardian.tempmuteip` |
| `/unmuteip ` | Unmute a player’s IP | `weguardian.unmuteip` |
| `/kick [reason]` | Kick a player | `weguardian.kick` |
| `/punish ` | Open punishment GUI | `weguardian.punish` |
| `/history ` | View punishment history | `weguardian.history` |
| `/weguardian reload` | Reload configuration | `weguardian.admin` |
—
## 🔑 Permissions
| Permission | Description | Default |
|————|————-|———|
| `weguardian.staff` | All staff permissions | OP |
| `weguardian.admin` | Admin commands (reload) | OP |
| `weguardian.bypass` | Bypass all punishments | false |
—
## ⏱️ Duration Format
Durations support the following formats:
| Unit | Example | Description |
|——|———|————-|
| `s` | `30s` | Seconds |
| `m` | `30m` | Minutes |
| `h` | `6h` | Hours |
| `d` | `7d` | Days |
| `w` | `2w` | Weeks |
| `M` | `1M` | Months |
| `y` | `1y` | Years |
**Examples:** `1h`, `6h`, `1d`, `7d`, `30d`, `90d`
—
## ⚙️ Configuration
### Database (SQLite – Default)
“`yaml
database:
type: “sqlite”
sqlite:
file: “punishments.db”
“`
### Database (MySQL)
“`yaml
database:
type: “mysql”
mysql:
host: “localhost”
port: 3306
database: “weguardian”
username: “root”
password: “password”
“`
### Discord Webhook
“`yaml
discord:
enabled: true
webhook-url: “YOUR_WEBHOOK_URL”
batch-interval-seconds: 5
“`
### Web Dashboard
“`yaml
web-dashboard:
enabled: true
host: “0.0.0.0”
port: 8080
admin-api-key: “YOUR_SECURE_KEY”
“`
—
## 🛠️ Requirements
– **Minecraft Server:** Paper 1.21+ or Folia
– **Java:** 21 or higher
—
## 📚 Dependencies
– [Paper API](https://papermc.io/) – Server API
– [FoliaLib](https://github.com/TechnicallyCoded/FoliaLib) – Folia compatibility
– [Caffeine](https://github.com/ben-manes/caffeine) – Caching
– [HikariCP](https://github.com/brettwooldridge/HikariCP) – Connection pooling
– [ACF](https://github.com/aikar/commands) – Command framework
– [FastInv](https://github.com/MrMicky-FR/FastInv) – GUI framework
– [bStats](https://bstats.org/) – Plugin metrics
– [Javalin](https://javalin.io/) – Web framework
—
## 📞 Support
For support and questions, join our Discord or open an issue on GitHub.
—
## 📄 License
This project is licensed under the MIT License. See [LICENSE.md](LICENSE.md) for details.
—
Made with ❤️ by WeThink
WeFriends
# We-Friends
[](https://opensource.org/licenses/MIT)
[](https://www.oracle.com/java/)
[](https://papermc.io/)
[](https://github.com/PaperMC/Folia)
A comprehensive friend and party management system for Minecraft servers with cross-server support, built for Paper/Spigot and Folia.
## ✨ Features
### 🤝 Friend System
– **Friend Requests**: Send, accept, and deny friend requests
– **Friend List**: View online/offline friends with status indicators
– **Friend Chat**: Private messaging and group chat with friends
– **Join/Quit Notifications**: Get notified when friends join or leave
– **Request Toggle**: Enable/disable receiving friend requests
– **Cross-Server Support**: Friends can interact across multiple servers
### 🎉 Party System
– **Party Creation**: Create and manage parties with friends
– **Party Invites**: Invite friends to join your party
– **Party Chat**: Dedicated party chat channel
– **Party Roles**: Leader and member roles with permissions
– **Party Management**: Kick, promote, transfer leadership, and disband
– **Cross-Server Parties**: Party members can be on different servers
### 🌐 Cross-Server Support
– **Multi-Server Network**: Connect multiple servers with Redis
– **Real-time Sync**: Instant notifications across servers
– **Server Identification**: See which server friends/party members are on
– **Seamless Experience**: Chat and interact across the entire network
### 🔧 Advanced Features
– **Database Support**: SQLite and MySQL support
– **Redis Integration**: For cross-server communication
– **PlaceholderAPI**: Custom placeholders for other plugins
– **Folia Support**: Full compatibility with Folia servers
– **Chat Spy**: Staff can monitor friend/party chats
– **Chat Modes**: Toggle between normal, friend, and party chat
## 📋 Requirements
– **Java**: 17 or higher
– **Server Software**: Paper 1.21.1+ or Folia
– **Database**: SQLite (included) or MySQL
– **Redis**: Required for cross-server functionality (optional)
## 🚀 Installation
1. **Download** the latest release from [Releases](https://github.com/WeThink25/We-Friends/releases)
2. **Place** the JAR file in your server’s `plugins` folder
3. **Start** your server to generate the configuration files
4. **Configure** the plugin (see Configuration section)
5. **Restart** your server
## ⚙️ Configuration
### Basic Setup (Single Server)
“`yaml
# config.yml
database:
type: sqlite # Use SQLite for single server
server:
name: lobby # Your server name
cross-server:
enabled: false # Disable for single server
redis:
enabled: false # Not needed for single server
“`
### Multi-Server Setup
“`yaml
# config.yml
database:
type: mysql # Required for multi-server
mysql:
host: localhost
port: 3306
database: wefriends
username: root
password: “your_password”
server:
name: lobby # Unique name for each server
cross-server:
enabled: true # Enable cross-server features
sync-interval: 30
notification-timeout: 5
redis:
enabled: true # Required for cross-server
host: localhost
port: 6379
password: “”
channel: wefriends:events
limits:
max-friends: 200
max-party-size: 8
“`
### Database Setup (MySQL)
“`sql
CREATE DATABASE wefriends;
CREATE USER ‘wefriends’@’%’ IDENTIFIED BY ‘your_password’;
GRANT ALL PRIVILEGES ON wefriends.* TO ‘wefriends’@’%’;
FLUSH PRIVILEGES;
“`
## 🎮 Commands
### Friend Commands
– `/friend add ` – Send a friend request
– `/friend accept ` – Accept a friend request
– `/friend deny ` – Deny a friend request
– `/friend remove ` – Remove a friend
– `/friend list` – View your friends list
– `/friend requests` – View pending requests
– `/friend toggle` – Toggle friend requests on/off
– `/fchat ` – Send a message to all friends
– `/fmsg ` – Send a private message to a friend
### Party Commands
– `/party create` – Create a new party
– `/party invite ` – Invite a friend to your party
– `/party accept ` – Accept a party invite
– `/party deny ` – Deny a party invite
– `/party leave` – Leave your current party
– `/party kick ` – Kick a member from the party (leader only)
– `/party promote ` – Promote a member to leader (leader only)
– `/party transfer ` – Transfer leadership (leader only)
– `/party disband` – Disband the party (leader only)
– `/pc ` – Send a message to party members
### Chat Mode Commands
– `/fchatmode` – Toggle friend chat mode
– `/pchatmode` – Toggle party chat mode
– `/chatmode` – View current chat mode
### Admin Commands
– `/fchatspy` – Toggle friend chat spy (permission required)
– `/partyspy` – Toggle party chat spy (permission required)
– `/wefriends reload` – Reload the plugin configuration
## 🔑 Permissions
### Player Permissions
– `wefriends.friend.use` – Use friend commands
– `wefriends.party.use` – Use party commands
– `wefriends.chat.friend` – Use friend chat
– `wefriends.chat.party` – Use party chat
### Admin Permissions
– `wefriends.admin` – Access admin commands
– `wefriends.spy.friend` – Spy on friend chats
– `wefriends.spy.party` – Spy on party chats
– `wefriends.reload` – Reload plugin configuration
## 📊 PlaceholderAPI
The plugin provides placeholders for use with PlaceholderAPI:
– `%wefriends_friends_online%` – Number of online friends
– `%wefriends_friends_total%` – Total number of friends
– `%wefriends_party_size%` – Current party size
– `%wefriends_party_leader%` – Party leader name
– `%wefriends_in_party%` – Whether player is in a party (true/false)
## 🔧 API Usage
### Maven Dependency
“`xml
me.wethink
wefriends
1.0.0
provided
“`
### Basic API Examples
“`java
// Get the plugin instance
WeFriends plugin = WeFriends.getInstance();
// Check if two players are friends
boolean areFriends = plugin.getFriendManager().areFriends(player1UUID, player2UUID);
// Get a player’s friends
Set friends = plugin.getFriendManager().getFriendUuidsPublic(playerUUID);
// Get party information
String partyId = plugin.getPartyManager().getPartyIdPublic(playerUUID);
List partyMembers = plugin.getPartyManager().getPartyMembers(partyId);
“`
## 🌐 Cross-Server Setup Guide
### Step 1: Database Configuration
Set up a shared MySQL database accessible by all servers:
“`yaml
database:
type: mysql
mysql:
host: your-database-host
port: 3306
database: wefriends_network
username: wefriends_user
password: secure_password
“`
### Step 2: Redis Configuration
Configure Redis for real-time communication:
“`yaml
redis:
enabled: true
host: your-redis-host
port: 6379
password: redis_password
channel: wefriends:network
“`
### Step 3: Server Identification
Give each server a unique name:
“`yaml
server:
name: lobby # For lobby server
name: survival # For survival server
name: creative # For creative server
“`
### Step 4: Enable Cross-Server Features
“`yaml
cross-server:
enabled: true
sync-interval: 30
notification-timeout: 5
“`
## 🐛 Troubleshooting
### Common Issues
**Database Connection Failed**
– Verify MySQL credentials and host accessibility
– Check firewall settings
– Ensure database exists and user has proper permissions
**Redis Connection Failed**
– Verify Redis server is running
– Check Redis host and port configuration
– Verify Redis password if authentication is enabled
**Cross-Server Not Working**
– Ensure all servers use the same MySQL database
– Verify Redis configuration is identical across servers
– Check that server names are unique
– Confirm `cross-server.enabled` is true
**Plugin Not Loading**
– Verify Java 17+ is installed
– Check server software compatibility (Paper 1.21.1+)
– Review server logs for error messages
## 🤝 Contributing
We welcome contributions! Please follow these steps:
1. **Fork** the repository
2. **Create** a feature branch (`git checkout -b feature/amazing-feature`)
3. **Commit** your changes (`git commit -m ‘Add amazing feature’`)
4. **Push** to the branch (`git push origin feature/amazing-feature`)
5. **Open** a Pull Request
### Development Setup
1. Clone the repository
2. Import into your IDE (IntelliJ IDEA recommended)
3. Run `mvn clean install` to build
4. Test on a Paper 1.21.1+ server
## 📝 License
This project is licensed under the MIT License – see the [LICENSE](LICENSE) file for details.
## 🙏 Acknowledgments
– **Paper Team** – For the excellent server software
– **Folia Team** – For multi-threaded server support
– **PlaceholderAPI** – For placeholder integration
– **HikariCP** – For database connection pooling
– **Jedis** – For Redis connectivity
## 📞 Support
– **Issues**: [GitHub Issues](https://github.com/WeThink25/We-Friends/issues)
– **Discussions**: [GitHub Discussions](https://github.com/WeThink25/We-Friends/discussions)
—
Made with ❤️ by [WeThink](https://github.com/WeThink25)
WebShopX
We also support English—please scroll down.
## WebShopX:Web 驱动的 Minecraft 商城与交易系统





> 这不是网页模板,而是一套可运行的交易系统。
> 官方商城(B2C)+ 玩家市场(C2C)+ 拍卖行 + 订单履约 + 管理后台,一体化落地。
### 快捷导航 (可点击)
[](https://www.bilibili.com/video/BV16zdZBTEbV/)
[](https://www.bilibili.com/video/BV18eoSBaEPY/)
[](https://docs.akihito.dpdns.org/category/webshopx)
[](https://github.com/Cc-Cece/WebShopX-Issues/issues)
[](https://qun.qq.com/universal-share/share?ac=1&authKey=EMHvFOsEqOBnEQi%2FJZtN%2BFwamTisdy0A02IwhRsxJG8t9GWK4uKs2G4CgZpT3yHW&busi_data=eyJncm91cENvZGUiOiI2MzY4MDMzNzIiLCJ0b2tlbiI6ImlpV3lHR3BFT3NvdWxUYysrSnFBN3lSWGRGU1BlTmF4a3FJSnNXeFBNZkI0emZRVDUxdCszbzdEc1NzUlNDTS8iLCJ1aW4iOiI5NTg2MzAxNDYifQ%3D%3D&data=8nepSQv0_dZIm_ZCWW-lPMXP8xlcFXyNWUolkq1DvckJaLbB0JYLVwmuOfmH0Z7mKXGgRx6yhwpi9bjWCvi66Q&svctype=4&tempid=h5_group_info)
### 环境要求
– Java 17+
– Paper 1.18.2+ 或 Folia 1.19.4+
– SQLite(无需额外配置) 或 MariaDB / MySQL
– Vault(可选)
– 支持群组服
– Language:zh-CN / en-US
### 核心闭环
– 玩家网页登录与会话
– 钱包、流水、双币兑换
– 官方商品下单、发货、退款
– 玩家市场上架、购买、竞拍、结算
– 发货失败兜底(待领取命令 + 邮箱补偿)
– 后台运营与审计治理
—
## 你能得到什么
| 模块 | 已实现能力 |
|—|—|
| 官方商城 | 出售物品、回收商品、命令、药水效果、兑换码五大类型商品 |
| 动态定价 | 官方商品支持动态定价与需求热度衰减(多算法) |
| 玩家市场 | 普通上架、供货箱上架、自动补货、改价、备注、暂停/恢复/下架 |
| 拍卖模式 | 英式、荷兰式、维克里、烛台拍卖;支持竞价、反狙击延时、到期结算 |
| 履约兜底 | 自动发货失败后可 /ws claim,且支持 mailbox 补偿领取 |
| 通知体系 | 站内通知列表、未读计数、已读标记、后台全服公告 |
| 管理后台 | 商品/订单/兑换码/市场/经济参数/用户支持/管理员管理/审计日志 |
—
## 玩家端能力
– Minecraft 用户名 + 网页密码登录
– 查看钱包余额与账变流水
– 兑换码入账
– ShopCoin / GameCoin 双向兑换
– 浏览官方商城并下单
– 浏览市场与店铺,支持搜索、筛选、排序
– 市场购买与拍卖出价(按商品交易模式)
– 查看订单并在规则内申请退款
– 领取待发货内容
—
## 玩家市场与拍卖
### 交易模式
| **模式** | **核心说明** | **适用场景** |
| ———————- | ———————————————————— | ——————————– |
| **直接购买 (DIRECT)** | 卖家设定固定价格,买家支付后立即成交。支持库存自动补货。 | 常规材料、消耗品、量产装备。 |
| **拍卖模式 (AUCTION)** | 卖家设定起拍价,在规定时间内由买家竞价,最终根据算法决定归属。 | 极品武器、稀有收藏品、地皮转让。 |
### 拍卖算法
| **算法标识** | **简称** | **逻辑简述** | **特点** |
| ———— | ————– | ———————————————————— | ——————————– |
| `ENGLISH` | **英式拍卖** | 价格由低往高喊,出价最高者获胜。支持反狙击延时(有人最后出价则自动延长)。 | 最符合直觉,互动性最强。 |
| `DUTCH` | **荷兰式拍卖** | 价格由高往低随时间自动下降,第一个确认购买的买家即成交。 | 速度快,适合想快速出手的卖家。 |
| `VICKREY` | **维克里拍卖** | 密封投标(互相看不到出价),最高出价者获胜,但支付的是**第二高**的价格。 | 鼓励买家出示心中真实的最高价。 |
| `CANDLE` | **蜡烛拍卖** | 英式拍卖的变种,拍卖结束时间在最后阶段随机。 | 防止玩家在最后一秒恶意压秒出价。 |
### 市场特性
– 供货箱库存自动补货
– 市场广播
– 周期性市场结算任务
– 卖家成交日志查询
—
## 官方商城能力
– 商品类型:
| **类型标识** | **中文名称** | **功能描述** |
| ———————– | ————— | —————————————— |
| **`COMMAND`** | **指令执行** | 购买后由控制台或以玩家身份执行预设指令。 |
| **`GIVE_ITEM`** | **物品发放** | 系统直接生成物理道具并放入玩家背包。 |
| **`POTION_EFFECT`** | **药水效果** | 购买后为玩家施加特定的 药水效果。 |
| **`RECYCLE_ITEM`** | **回收/兑换** | 系统以特定价格回收玩家特定物品。 |
| **`GROUP_BUY_VOUCHER`** | **团购/兑换码** | 交付特定的序列号或兑换凭证,支持群体核销。 |
– 商品支持发布/下架时间窗
– 可配置库存、个人限购
– 回收与实物商品可启用动态定价
—
## 履约、退款与兜底
– 订单状态覆盖 **订单挂起**、**待领**、**完成**到**退款** 等流程
– 支持订单**冷静期**与**退款**策略配置
– 可选开启未发放前可退款
– 团购券支持核销状态管理与退款联动
– 自动发货失败时可通过命令领取或邮箱补偿
—
## 管理后台
– 管理员鉴权与会话
– 商品管理、上下架、限购重置
– 兑换码创建与列表
– 团购券核销
– 订单查询
– 经济参数管理(汇率、市场税费/手续费)
– 市场管理与强制下架
– 用户支持:查用户、重置密码、解绑、强制下线、钱包调整
– 全服系统公告
– 管理员账号与权限模板管理
– 审计日志查询
### 内置角色模板
| **角色标识** | **中文名称** | **核心职能定位** |
| —————— | ————– | ———————————————————— |
| `SUPER_ADMIN` | **超级管理员** | 拥有系统最高权限,可管理所有后台模块、配置参数及管理员账号。 |
| `SHOP_ADMIN` | **商城管理员** | 负责官方商城(B2C)的运营,包括商品上下架、限购设置、兑换码生成等。 |
| `MARKET_MODERATOR` | **市场监管员** | 负责玩家市场(C2C)的治理,有权强制下架违规商品或监控拍卖行为。 |
| `SUPPORT_ADMIN` | **客服管理员** | 负责用户支持工作,如查询玩家信息、重置密码、手动调整钱包余额等。 |
| `AUDITOR` | **审计员** | 仅拥有查看和导出权限,负责审计全局日志、交易流水及管理员操作记录。 |
—
## 命令(游戏内)
| 命令 | 说明 |
|—|—|
| /webshopx help | 帮助 |
| /webshopx password <新密码> | 设置/重置网页登录密码 |
| /webshopx market [gui] | 打开市场 GUI |
| /webshopx market sell [amount] [currency] | 兼容式快速上架 |
| /webshopx market logs [count] | 查看卖家近期成交日志 |
| /webshopx claim [all|ODR-…|MKT-…|CLM-…|MCL-…] | 领取待发货内容 |
| /webshopx mailbox claim | 领取邮箱待补偿物品 |
| /webshopx redeem create [max] [perUserMax] [minutes] [code] | 创建兑换码(管理员) |
| /webshopx reload | 重载配置与网页资源(管理员) |
别名:/ws
—
## 快速开始
请前往 [Wiki](https://docs.akihito.dpdns.org/category/webshopx) 查看文字教程,或点击查看 [视频教程](https://www.bilibili.com/video/BV18eoSBaEPY/) 。
—
## 反馈与支持
– 视频介绍:https://www.bilibili.com/video/BV16zdZBTEbV/
– 配置教程:https://www.bilibili.com/video/BV18eoSBaEPY/
– Wiki:https://github.com/Cc-Cece/WebShopX-Issues/wiki
– Issues:https://github.com/Cc-Cece/WebShopX-Issues/issues
– 公测交流群(QQ):[636803372](https://qun.qq.com/universal-share/share?ac=1&authKey=EMHvFOsEqOBnEQi%2FJZtN%2BFwamTisdy0A02IwhRsxJG8t9GWK4uKs2G4CgZpT3yHW&busi_data=eyJncm91cENvZGUiOiI2MzY4MDMzNzIiLCJ0b2tlbiI6ImlpV3lHR3BFT3NvdWxUYysrSnFBN3lSWGRGU1BlTmF4a3FJSnNXeFBNZkI0emZRVDUxdCszbzdEc1NzUlNDTS8iLCJ1aW4iOiI5NTg2MzAxNDYifQ%3D%3D&data=8nepSQv0_dZIm_ZCWW-lPMXP8xlcFXyNWUolkq1DvckJaLbB0JYLVwmuOfmH0Z7mKXGgRx6yhwpi9bjWCvi66Q&svctype=4&tempid=h5_group_info)
WebShopX 正在持续迭代,欢迎提出功能建议与真实运营场景反馈。
—
## WebShopX: Web-Driven Minecraft Store & Trading System





> This is not a web template, but a fully functional trading system.
> Official Store (B2C) + Player Market (C2C) + Auction House + Order Fulfillment + Admin Dashboard, all in one.
### Quick Navigation (Clickable)
[](https://www.bilibili.com/video/BV16zdZBTEbV/)
[](https://www.bilibili.com/video/BV18eoSBaEPY/)
[](https://docs.akihito.dpdns.org/category/webshopx)
[](https://github.com/Cc-Cece/WebShopX-Issues/issues)
[](https://qun.qq.com/universal-share/share?ac=1&authKey=EMHvFOsEqOBnEQi%2FJZtN%2BFwamTisdy0A02IwhRsxJG8t9GWK4uKs2G4CgZpT3yHW&busi_data=eyJncm91cENvZGUiOiI2MzY4MDMzNzIiLCJ0b2tlbiI6ImlpV3lHR3BFT3NvdWxUYysrSnFBN3lSWGRGU1BlTmF4a3FJSnNXeFBNZkI0emZRVDUxdCszbzdEc1NzUlNDTS8iLCJ1aW4iOiI5NTg2MzAxNDYifQ%3D%3D&data=8nepSQv0_dZIm_ZCWW-lPMXP8xlcFXyNWUolkq1DvckJaLbB0JYLVwmuOfmH0Z7mKXGgRx6yhwpi9bjWCvi66Q&svctype=4&tempid=h5_group_info)
### Requirements
– Java 21
– Paper 1.20.6+ (Spigot compatible)
– MariaDB / MySQL
– Vault (Optional)
– BungeeCord/Velocity proxy support
– Built-in languages: zh-CN / en-US
### Core Loop
– Player web login & session management
– Wallet, transaction history, dual-currency exchange
– Official store ordering, delivery, and refunds
– Player market listing, purchasing, bidding, and settlement
– Delivery failure fallback (claim command + mailbox compensation)
– Backend operations and audit governance
—
## What You Get
| Module | Implemented Capabilities |
|—|—|
| Official Store | 5 commodity types: Sell items, Recycle items, Commands, Potion effects, Redeem codes |
| Dynamic Pricing | Official products support dynamic pricing and demand decay (multiple algorithms) |
| Player Market | Standard listing, Shulker box listing, Auto-restock, Price editing, Notes, Pause/Resume/Unlist |
| Auction Mode | English, Dutch, Vickrey, Candle auctions; supports bidding, anti-sniper delay, expiry settlement |
| Fulfillment Fallback | Auto-delivery failure allows `/ws claim`, and supports mailbox compensation claim |
| Notification System | In-site notification list, Unread count, Mark as read, Global backend announcements |
| Admin Dashboard | Products / Orders / Redeem codes / Market / Economy params / User support / Admin management / Audit logs |
—
## Player Features
– Minecraft Username + Web Password login
– View wallet balance and transaction history
– Redeem codes
– ShopCoin / GameCoin bidirectional exchange
– Browse official store and place orders
– Browse market and shops, supports searching, filtering, and sorting
– Market purchasing and auction bidding (based on trading mode)
– View orders and apply for refunds within rules
– Claim pending deliveries
—
## Player Market & Auctions
### Trading Modes
| **Mode** | **Core Description** | **Use Case** |
| ———————- | ———————————————————— | ——————————– |
| **Direct Purchase (DIRECT)** | Seller sets a fixed price, buyer pays and receives it instantly. Supports auto-restock. | Common materials, consumables, mass-produced gear. |
| **Auction Mode (AUCTION)** | Seller sets a starting price, buyers bid within a time limit, algorithm decides winner. | Top-tier weapons, rare collectibles, plot transfers. |
### Auction Algorithms
| **Algorithm ID** | **Abbreviation** | **Logic Overview** | **Characteristics** |
| ———— | ————– | ———————————————————— | ——————————– |
| `ENGLISH` | **English Auction** | Price goes up, highest bidder wins. Supports anti-sniper delay. | Most intuitive, highly interactive. |
| `DUTCH` | **Dutch Auction** | Price drops automatically over time, first buyer to confirm wins. | Fast-paced, suitable for quick sales. |
| `VICKREY` | **Vickrey Auction** | Sealed-bid (blind), highest bidder wins but pays the **second-highest** price. | Encourages buyers to bid their true maximum value. |
| `CANDLE` | **Candle Auction** | Variation of English auction, end time is randomized in the final stage. | Prevents malicious last-second sniping. |
### Market Features
– Shulker box inventory auto-restock
– Market broadcasts
– Periodic market settlement tasks
– Seller transaction log queries
—
## Official Store Features
– Product Types:
| **Type ID** | **Name** | **Functional Description** |
| ———————– | ————— | —————————————— |
| **`COMMAND`** | **Command Execution** | Executes a preset command via console or player after purchase. |
| **`GIVE_ITEM`** | **Item Delivery** | System generates physical items and puts them in player’s inventory. |
| **`POTION_EFFECT`** | **Potion Effect** | Applies specific potion effects to the player after purchase. |
| **`RECYCLE_ITEM`** | **Recycle/Exchange** | System recycles specific player items at a set price. |
| **`GROUP_BUY_VOUCHER`** | **Group Buy/Voucher**| Delivers specific serials or vouchers, supports group verification. |
– Products support publish/unlist time windows
– Configurable stock and personal purchase limits
– Recycle and physical items can enable dynamic pricing
—
## Fulfillment, Refunds & Fallbacks
– Order status covers **Pending**, **To Claim**, **Completed**, and **Refunded**
– Supports order **Cool-down Period** and **Refund** policy configuration
– Optional toggle for refunds before delivery
– Group buy vouchers support verification status management linked with refunds
– Auto-delivery failure can be claimed via command or mailbox compensation
—
## Admin Dashboard
– Admin authentication & session management
– Product management, listing/unlisting, limit resets
– Redeem code creation and list
– Group buy voucher verification
– Order queries
– Economy parameter management (Exchange rates, Market taxes/fees)
– Market management and forced unlisting
– User support: Query users, reset passwords, unbind, kick offline, adjust wallets
– Global system announcements
– Admin accounts & permission template management
– Audit log queries
### Built-in Role Templates
| **Role ID** | **Name** | **Core Functionality** |
| —————— | ————– | ———————————————————— |
| `SUPER_ADMIN` | **Super Admin** | Highest system authority, manages all modules, configs, and admin accounts. |
| `SHOP_ADMIN` | **Store Admin** | Manages official store (B2C) operations, including products, limits, and codes. |
| `MARKET_MODERATOR` | **Market Mod** | Manages player market (C2C), can force-unlist items or monitor auctions. |
| `SUPPORT_ADMIN` | **Support Admin** | Handles user support, user queries, password resets, and manual wallet adjustments. |
| `AUDITOR` | **Auditor** | View and export permissions only, audits global logs, transactions, and admin actions. |
—
## Commands (In-Game)
| Command | Description |
|—|—|
| /webshopx help | Help menu |
| /webshopx password | Set/Reset web login password |
| /webshopx market [gui] | Open market GUI |
| /webshopx market sell [amount] [currency] | Compatible quick listing |
| /webshopx market logs [count] | View seller’s recent transaction logs |
| /webshopx claim [all|ODR-…|MKT-…|CLM-…|MCL-…] | Claim pending deliveries |
| /webshopx mailbox claim | Claim mailbox compensation items |
| /webshopx redeem create [max] [perUserMax] [minutes] [code] | Create redeem code (Admin) |
| /webshopx reload | Reload config and web resources (Admin) |
Alias: /ws
—
## Quick Start
Please check the [Wiki](https://docs.akihito.dpdns.org/category/webshopx) for written tutorials, or click to watch the [Video Tutorial](https://www.bilibili.com/video/BV18eoSBaEPY/).
—
## Feedback & Support
– Video Intro: https://www.bilibili.com/video/BV16zdZBTEbV/
– Setup Tutorial: https://www.bilibili.com/video/BV18eoSBaEPY/
– Wiki: https://docs.akihito.dpdns.org/
– Issues: https://github.com/Cc-Cece/WebShopX-Issues/issues
– Open Beta Group (QQ): [636803372](https://qun.qq.com/universal-share/share?ac=1&authKey=EMHvFOsEqOBnEQi%2FJZtN%2BFwamTisdy0A02IwhRsxJG8t9GWK4uKs2G4CgZpT3yHW&busi_data=eyJncm91cENvZGUiOiI2MzY4MDMzNzIiLCJ0b2tlbiI6ImlpV3lHR3BFT3NvdWxUYysrSnFBN3lSWGRGU1BlTmF4a3FJSnNXeFBNZkI0emZRVDUxdCszbzdEc1NzUlNDTS8iLCJ1aW4iOiI5NTg2MzAxNDYifQ%3D%3D&data=8nepSQv0_dZIm_ZCWW-lPMXP8xlcFXyNWUolkq1DvckJaLbB0JYLVwmuOfmH0Z7mKXGgRx6yhwpi9bjWCvi66Q&svctype=4&tempid=h5_group_info)
WebShopX is continuously iterating. Feature suggestions and real-world operational feedback are welcome.
Webmarket
# WebMarket Free
[Demo video](https://www.youtube.com/watch?v=tvTJZuOYvno) /
[Demo site](https://sd.kurt6.cn)
Supports Paper / Folia / Spigot / Bukkit / Purpur on `1.20+`. The web UI works on both desktop and mobile browsers.
The free edition focuses on the core web player market, inventory viewing, pending claims, trade logs, account flows, and economy features.
—
## Included Features
– Core player market
Players can list, buy, and delist items. The free edition is hard-limited to `100` concurrent player-market listings at runtime.
– Offline operations
Players can still view inventory / ender chest data and handle pending claims through the web UI while offline.
– Full item detail rendering
Durability, enchants, lore, custom names, potion effects, shulker-box contents, bundle contents, and other NBT data are preserved and displayed.
– Trade logs
Supports player trade log queries and material-based trade log queries.
– Account system
Supports web registration, in-game registration, account binding, password change, and API-key-based login.
– Built-in economy and Vault economy
Supports money trading, transfers, balance lookup, wealth leaderboard, and transaction history.
– Icon and asset fallback
Supports vanilla assets, partial custom-item resources, and generated web icon caching.
—
## Not Included in Free
– In-game GUI
– Buy request system
– Auction house
– Official shop sell / buyback
– Buff shop
– Special item / perk area
– Cross-server features
– Remote inventory operations
– Points currency trading
– Per-player permission-group overrides
—
## Installation
1. Put the free-edition jar into the server `plugins` directory.
2. Start the server once to generate the config files.
3. Edit `config.yml` or `config.en_us.yml` as needed.
4. Restart the server.
—
## Main Commands
All commands support the `/wm` prefix. Some also have short aliases.
| Command | Description |
|—|—|
| `/wm help` | Show available help |
| `/wm bind ` | Bind the web account to the Minecraft account |
| `/wm register [username]` | Register a web account in game |
| `/wm claim` | Claim pending items |
| `/wm sj ` | Quick-list the held item to the player market |
| `/wm marketlogs me` | Query your own trade logs |
| `/wm marketlogs [page] [filters]` | Admin query for a player's trade logs |
| `/wm marketlogs-material [page] [filters]` | Query logs for a material |
| `/wm restrict` | Manage basic player-market listing restrictions |
| `/wm blockitem` | Manage blocked NBT items |
| `/wm money` | Check balance |
| `/wm money pay [reason]` | Transfer money |
| `/wm money top [page]` | Wealth leaderboard |
| `/wm money history [player] [page]` | Query transaction history |
| `/wm economy [process]` | View or process economy status |
| `/wm resetpassword ` | Admin reset for web password |
---
## Permission Nodes
| Node | Purpose |
|---|---|
| `webmarket.use` | Base command access |
| `webmarket.resetpassword` | Reset web password |
| `webmarket.economy.view` | View economy status |
| `webmarket.economy.process` | Process offline economy records |
| `webmarket.restrict` | Manage market restrictions |
| `webmarket.marketlogs` | Query player/material trade logs |
| `webmarket.marketlogs.self` | Query your own trade logs |
| `webmarket.iconcache` | Manage web icon cache |
| `webmarket.blockitem` | Manage blocked listing items |
| `webmarket.money.balance` | View own balance |
| `webmarket.money.others` | View other players' balances |
| `webmarket.money.pay` | Transfer money |
| `webmarket.money.top` | View wealth leaderboard |
| `webmarket.money.history` | View own transaction history |
| `webmarket.money.history.others` | View other players' transaction history |
| `webmarket.money.admin` | Admin economy commands |
---
## bStats

---
Webcam
# Webcam
Mod and plugin that allows players to broadcast their webcams
## Downloads
– [Fabric / Quilt](https://modrinth.com/mod/webcam-mod/versions?l=fabric)
– [NeoForge](https://modrinth.com/mod/webcam-mod/versions?l=neoforge)
– [Bukkit / Spigot / Paper](https://modrinth.com/plugin/webcam-mod/versions?l=bukkit)
– [Velocity](https://modrinth.com/mod/webcam-mod/versions?l=velocity)
## ⚠️ Warning
This plugin requires special setup on server to work.
If you are a server administrator, please read the section `Setup on server` first
## Features
– High-quality webcam broadcasting
– H.264 video codec
– Video transmission via UDP using custom protocol
– AES encryption
– Bitrate control
– Video resolution control
– Different display shapes
– Display size and position configuration
– Display on player model face
– Display distance limit
– Webcam broadcast and view permissions
– Advanced client configuration ([Mod Menu](https://modrinth.com/mod/modmenu) & [Cloth Config API](https://modrinth.com/mod/cloth-config) required)
– Ability to hide selected players’ webcams
– Velocity proxy support
– Compatibility with [ReplayMod](https://modrinth.com/mod/replaymod) & [Flashback](https://modrinth.com/mod/flashback)

## Client Usage
Put the mod in the `mods` directory (with the Fabric API if you are using Fabric). The settings menu can be opened by hotkey (`C` by default)

## Icons
| Icon | Description |
|:——————————————————–:|——————————–|
|  | Your webcam is enabled |
|  | Your webcam is disabled |
|  | Connecting to Webcam server |
|  | Not connected to Webcam server |
## Encryption
Webcam connection is encrypted, but we don’t guarantee the security of it. Use at your own risk!
## Setup on server
Webcam plugin uses UDP socket to transfer video packets.
So you need to open a UDP port in your server’s firewall and panel (if present) to make Webcam server work. This is port `25454/udp` by default. You can change the port in server config
If you are using Velocity, see `Setup on proxy`
### Server config
Location:
– Fabric / Quilt / NeoForge: `config/webcam/server.json`
– Bukkit / Spigot / Paper: `plugins/webcam/server.json`
Here are the default values with their descriptions:
“`
{
“port”: 25454, // Webcam UDP server port. This must not clash with any other used UDP port (like Simple Voice Chat port)
“bind_address”: “”, // Address to bind the Webcam server to. Leave blank to use the wildcard (0.0.0.0) address. F.e. use “127.0.0.1” to accept only local connections
“host”: “”, // The hostname that clients should use to connect to the Webcam server. Leave blank to use the address, that player is connected to Minecraft with. Can be a simple address or an address with port. This will be ignored, if the server is proxied
“keep_alive_period”: 1000, // Period of sending keep alive packets is milliseconds
“permission_check_period”: 60, // Period of checking webcam.broadcast and webcam.view permissions in ticks
“max_display_distance”: 100.0, // The distance in blocks from player, in which other players can see his webcam
“display_on_face”: false, // Whether to display webcam on player model face or above his head
“display_shape”: “round”, // Shape of webcams displayed above players’ head. Possible values: “round”, “square”
“display_offset_y”: 1.3, // Y offset of webcams displayed above players’ head
“display_size”: 1.2, // Size of webcams displayed above players’ head
“hide_nicknames”: true, // Whether to hide player’s nickname if his webcam is enabled
“display_self_webcam”: true, // Whether to show the player’s webcam to himself
“synced”: { // These settings are synchronized with clients
“image_dimension”: 360, // Side dimension of square webcam images
“mtu”: 1100, // Maximum Transmission Unit of packets. You can lower this, if image on webcam starts look glitchy or not arrives at all
“bitrate”: 500 // Target video bitrate (kbps)
},
“messages”: { // Custom transtalions for messages, that are sent to players in different situations. May contain placeholders – %s
“incompatible_mod_version”: “Incompatible Webcam version. Your – %s, server’s – %s” // The message that will be sent to player if he has incompatible Webcam mod version. You can set this to empty to disable sending this message
}
}
“`
### Commands
– `/webcamconfig [new_value]` – command to read/update config values. Requires `webcam.command.config` permission or OP.
### Permissions
– `webcam.command.config` – permission to modify Webcam server config (default: OP Level)
– `webcam.broadcast` – permission to broadcast webcam (default: true)
– `webcam.view` – permission to view webcams (default: true)
## Setup on proxy
Webcam has Velocity plugin that proxies Webcam servers on the backend MC servers and allows to connect to different Webcam servers through the single port.
So it acts like a UDP proxy.
If you running proxy and backend servers on the same machine, you need to configure different ports for them. See `Setup on server/Server config` and `Setup on proxy/Proxy config`
### Proxy config
Server config is located in `plugins/webcam/config.properties`
Here are the default values with their descriptions:
“`
#Webcam proxy config
# Webcam UDP server port. This must not clash with any other used UDP port (like Simple Voice Chat port)
port=25454
# Address to bind the Webcam server to. Leave blank to use the wildcard (0.0.0.0) address. F.e. use “127.0.0.1” to accept only local connections
bind_address=
# The hostname that clients should use to connect to the Webcam server. Leave blank to use the address, that player is connected to Minecraft with. Can be a simple address or an address with port. This will override configured values on backend server’s
host=
“`
## License
This mod is licensed under **No Unauthorized Distribution License**, which full text can be found at https://github.com/DimasKama/Webcam/blob/master/LICENSE.md
### Summary
– **Modpacks:** You can use this mod in modpacks, but you must not include its files directly. Instead, list it as a dependency (mod reference) that points to an official download source.
– **For Devs:** You’re allowed to create addons or integrate support for the mod, but you must not copy any of its code. Instead, make it an external dependency that gets downloaded from an official source.
– **Redistribution Limits:** You cannot re-upload or share the mod’s code or compiled files publicly without the author’s explicit permission. Forking for personal use is okay, but distributing a compiled fork is not allowed.
– **Personal Use:** You may use and modify the mod for personal use, but any changes must remain private and not be shared publicly.
– **Official Download Requirement:** Any dependency or modpack reference must point to the official download sources provided by the author.
Waypoints
# Waypoints
[](https://discord.gg/4xY9TcHQja)


Ever had the problem, that you were on a long trip and can’t find your base?
You could set a warp with a conventional plugin at your home and simply teleport back. But if you want to keep the survival experience of not being able to
teleport like that, this plugin could be just what your server needs!
## Direction Indicators
So, instead of just bringing the player back where he started, this plugin shows him the direction he has to walk, so he can explore the world even more. To
show the player the direction you can configure multiple direction indicators to guide the player to his destination.
### Bossbar Indicator
A compass will be visible at the top of the screen, with a highlighter marking in which direction the waypoint is
### Beacon
When the waypoint is in render distance, a beacon beam will appear at the location of the waypoint to make it easier to pinpoint the location of the waypoint.
### Trail
The plugin attempts to find a suitable path for you to walk and then shows it to you with particles.
### Hologram
Floating text like in the mods.
### Blinking Block
When the player is closer to the waypoint, the beacon will be replaced with a block sequence that will repeat. This is to help him get to the exact location.
### Compass
It won’t get any simpler than that if the player owns a compass. It will have the waypoint as it’s target and points into that direction.
### Actionbar Indicator
This is comparable to the compass but doesn’t require one. It will show the rough direction with small sections in the action bar of the player. If the player
is too far left, the sections in the right will light up and vice versa.
### Particles
Particles appear at the feet of the player pointing into the direction of the waypoint
## Player tracking
Although disabled by
default, [when enabled](https://github.com/Sytm/waypoints/blob/616d2f6db741d656edb8f5d98bb2d18f32cbe2ca/waypoints/src/main/resources/config.yml#L120) adds a
menu to the GUI where the player can choose another player to track. Now the compass, actionbar indicator and particles will help guide the player to the
tracked player.
– Players can choose to hide themselves in the menu to others (if enabled)
– Players must show themselves to others in order to track a player (if enabled)
– The player that gets tracked receives a notification who started tracking him (if enabled)
## Languages
The plugin is shipping translations for the following languages:
– English
– German
– Italian (by marcotech81)
– Simplified Chinese (by SnowCutieOwO)
– Traditional Chinese (by ItzTheBear)
– Brazilian Portuguese (partial, by gaugt980131gg2)
And if your language is not there, the plugin is fully translatable
## Other notable features
– Open the GUI by sneaking and right-clicking with a compass (by default)
– Set custom icons for waypoints and folders by clicking on their icon. The item in your main hand will be used
– Limit the amount of waypoints and folders a player can have
– Customizable teleport prices and price increases the more the player teleports (With Vault support)
– Direction indicators customizable
– Items in GUI fully customizable
– SQLite data storage
## Integrations
– Public waypoints are added to:
– [Dynmap](https://www.spigotmc.org/resources/dynmap%C2%AE.274/)
– [SquareMap](https://github.com/jpenilla/squaremap)
– [BlueMap](https://bluemap.bluecolored.de/)
– [Pl3xMap](https://modrinth.com/plugin/pl3xmap)
## Videos
DonKolia made a small video series of this plugins functionality where he demonstrates the basic functionality and all the available pointers.
It is in Spanish but with English subtitles: [Link to playlist](https://www.youtube.com/watch?v=mt3lmGMKZV8&list=PLop1Uc5d4Z6pTJIBRwTFumdL7cInrE7fL)
## Commands
`/waypoints` – Opens the GUI
`/waypoints select ` – Select an additional waypoint
`/waypoints deselectAll` – Deselect all selected waypoints
`/waypoints teleport ` – Teleport to waypoints (if allowed)
`/waypoints set ` – Create a waypoint only the player himself can see
`/waypoints setPublic ` – Create a waypoint visible for everyone
`/waypoints setPermission ` – Create a waypoint only visible for players with the given permission
`/waypoints setTemporary ` – Create a waypoint that is only visible for the time he is online
`/waypoints other ` – View the waypoints of another player
`/waypoints statistics` – Look at some rudimentary statistics about the database
`/waypoints reload` – Reload the configuration. (`/reload` **is not supported**)
### Scripting
`/waypointsscript deselectWaypoint ` – Deselect the current waypoints of a player with a command
`/waypointsscript selectWaypoint ` – Set the waypoint selection of a player with a command
`/waypointsscript temporaryWaypoint [Beacon-Color]` – Create a temporary waypoint for the player
`/waypointsscript uuid ` – Search for waypoints by their name to get the uuid of them
## Permissions
`waypoints.command.use`* – Allows the player to use the `/waypoints` command and open the GUI
`waypoints.command.other` – Allows the player to use the `/waypoints other` command
`waypoints.command.statistics` – Allows the player to use the `/waypoints statistics` command
`waypoints.command.reload` – Allows the player to use the `/waypoints reload` command
`waypoints.command.scripting` – Allows the player to use the `/waypointsscript` command and get the UUID of waypoints
`waypoints.modify.private`* – Allows the player to create, alter and delete private waypoints
`waypoints.modify.public` – Allows the player to create, alter and delete public waypoints
`waypoints.modify.permission` – Allows the player to create, alter, delete and always see permission waypoints
`waypoints.modify.anywhere` – Allows the player to place waypoints wherever they want, ignoring disabled worlds
`waypoints.modify.other` – Allows the player to modify the waypoints of another player when using `/waypoints other`
`waypoints.unlimited` – Allows the player to create more waypoints and folders than the limit in the config
`waypoints.temporaryWaypoint`* – Allows the player to create a waypoint that is only visible for the time he is online
`waypoints.temporaryWaypoint.other`* – Allows the player to create a waypoint for select players that is only visible for the time they is online
`waypoints.teleport.private` – Allows the player to teleport to private waypoints
`waypoints.teleport.public` – Allows the player to teleport to public waypoints
`waypoints.teleport.permission` – Allows the player to teleport to permission waypoints
`waypoints.tracking.enabled`* – Allows the player to use the player tracking feature
`waypoints.tracking.trackAll` – Allows the player to track players that are hidden
`waypoints.updateNotification` – The player receives a notification after a server restart if a new Version is found
*: These permissions are granted to all players by default
## Configuration
Almost everything is configurable. To have a look at the current configuration file
click [here](https://github.com/Sytm/waypoints/blob/v4/master/waypoints/src/main/resources/config.yml)
Also, you can change every piece of text to other languages or just change the colors.
[English Translation File](https://github.com/Sytm/waypoints/blob/v4/master/waypoints/src/main/resources/lang/en.yml)
## Additional notes
### Metrics
This plugin uses [bStats](https://bstats.org/) to collect basic metrics about the usage of this plugin. You can, of course, opt-out of this if you wish. For
further information have a look at “What data is collected?”
and “Disabling bStats” over [here](https://bstats.org/getting-started).
To view the metrics of this plugin, go [here](https://bstats.org/plugin/bukkit/waypoints2/6864).
### Java version
Java 21 is the minimum required version.
WaxShelf

# WaxShelf 🕯️
A lightweight and powerful Minecraft plugin that allows players to “wax” item frames and shelves to prevent unwanted interactions. Perfect for decorators, shop owners, and builders!
[](https://modrinth.com/plugin/waxshelf)
[](LICENSE)
## ✨ Features
* **Waxing Mechanics:** Use **Honeycombs** to wax item frames and bookshelves. Once waxed, they cannot be rotated, changed, or broken by regular means.
* **Unwaxing:** Use an **Axe** to remove the wax.
* **Invisible Item Frames:** Sneak-right-click an item frame with **Shears** to make it invisible. Use **Leather** to make it visible again.
* **Chiseled Bookshelf Support:** Fully compatible with Minecraft 1.20+ Chiseled Bookshelves (can be toggled in config).
* **Cross-Platform:** One JAR for **Spigot**, **Paper**, and **Folia**.
* **Hex Colors:** Use modern HEX colors (#RRGGBB) in all messages.
* **Action Bar Feedback:** Clean notifications that don’t spam the chat.
* **Config Migration:** Automatic configuration updates.
## 🛠 Commands & Permissions
| Command | Description | Permission |
|———|————-|————|
| `/waxshelf reload` | Reloads the configuration | `waxshelf.admin` |
| Permission | Description | Default |
|————|————-|———|
| `waxshelf.wax` | Apply wax to items | `true` |
| `waxshelf.unwax` | Remove wax from items | `true` |
| `waxshelf.invisible` | Toggle frame invisibility | `true` |
| `waxshelf.bypass` | Interact with waxed items | `op` |
| `waxshelf.admin` | Use reload command | `op` |
## ⚙️ Configuration
The plugin generates a `config.yml` with the following options:
“`yaml
# Enable or disable waxing mechanics
waxing:
shelves: true
chiseled-bookshelves: true
frames: true
# Enable or disable specific mechanics
mechanics:
shears-invisible-frames: true
leather-visible-frames: true
# Check for updates on startup (Modrinth API)
update-checker: true
“`
## 🚀 Installation
1. Download the latest JAR from [Modrinth](https://modrinth.com/plugin/waxshelf).
2. Drop it into your `plugins` folder.
3. Restart your server.
4. Enjoy your protected decorations!
—
Developed by **dscss2** with ❤️
Wandering Trader Folia
# WanderingTrader
**Fully customize Wandering Trader trades — with native Folia support.**
A simple, lightweight plugin that lets you define exactly what the Wandering Trader sells. Perfect for custom SMP servers, skyblock, or any server where you want control over trader inventory.
## ✨ Features
⚙️ **Complete Customization** — Define any item, any price, any amount
🎲 **Weighted Trades** — Control how often each trade appears
🚀 **Folia Native** — Built for multithreaded servers from day one
📦 **Zero Dependencies** — Just drop in and configure
🔄 **Hot Reload** — Change trades without restarting
—
## 📥 Installation
1. Download the JAR file
2. Place it in your `plugins` folder
3. Restart your server
4. Edit `plugins/WanderingTrader/config.yml`
—
## 🛠️ Commands
| Command | Description |
|———|————-|
| `/wt reload` | Reload the configuration |
| `/wt list` | View all configured trades |
| `/wt info` | Show plugin settings |
**Permission:** `wanderingtrader.admin` (default: OP)
—
## ⚙️ Configuration
### Basic Settings
“`yaml
settings:
min-trades: 5 # Minimum trades per trader
max-trades: 8 # Maximum trades per trader
replace-all-trades: true # true = custom only, false = add to vanilla
“`
### Creating Trades
“`yaml
trades:
elytra_trade:
enabled: true
result:
material: ELYTRA
amount: 1
cost:
material: DIAMOND_BLOCK
amount: 16
max-uses: 1
weight: 2 # Lower weight = rarer
“`
### Enchanted Books
“`yaml
trades:
mending:
enabled: true
result:
material: ENCHANTED_BOOK
amount: 1
cost:
material: EMERALD
amount: 24
enchantments:
MENDING: 1
max-uses: 1
weight: 5
“`
—
## 🎲 How Weights Work
Each trade has a `weight` value. When a Wandering Trader spawns, trades are randomly selected based on their weights:
– Higher weight = more likely to appear
– Weight of 10 is twice as likely as weight of 5
– Set `enabled: false` to disable a trade entirely
—
## 💡 Example Use Cases
– **Custom Economy** — Sell rare items for specific currencies
– **Skyblock** — Provide unobtainable resources
– **Hardcore SMP** — Balanced alternative progression
– **RPG Servers** — Quest items and special gear
—
## 📋 Requirements
– **Server:** Paper 1.21.4+ or Folia 1.21.4+
– **Java:** 21+
—
## ❓ FAQ
**Q: Do existing traders get new trades?**
A: No, only newly spawned traders use custom trades.
**Q: Does this work on Paper?**
A: Yes! Works on both Paper and Folia.
**Q: Can I add to vanilla trades instead of replacing?**
A: Yes, set `replace-all-trades: false` in config.
—
## 🐛 Issues & Suggestions
Found a bug or have an idea? [Open an issue on GitHub!](https://github.com/Whitebrim/BrimWorld-S5-Wandering-Trader/issues/new)
vUnstable
vUnstable
[](https://modrinth.com/plugin/vunstable)
[](https://modrinth.com/plugin/vunstable)
[](https://www.vprolabs.xyz/projects/license/raw)
[](https://www.oracle.com/java/)
[](https://papermc.io)
The Ultimate Orbital Strike Cannon plugin for Paper/Folia 1.21.x
2000 TNT with intelligent auto-optimization, synchronized explosions, and zero server freeze.
—
### TO-DO (in the future)
– 26.1 Support
– Add Fabric Support
– Add Forge/NeoForge Support
> These will be made in the future of this plugin, if you wanna support us to add these features faster then join our discord!
—
### Features
– **Nuke Rod**, Orbital strike with 2000 TNT entities, 10 concentric rings, 100×100 destruction area
– **Stab Rod**, Vertical shaft borer with INSTANT or FALL modes
– **Queue System**, Fire multiple nukes sequentially without spam
– **Auto-Optimization**, Automatically adjusts `spigot.yml` for optimal performance
– **Folia Support**, Full compatibility with regionized threading
– **Zero Dependencies**, Runs standalone with NMS MethodHandles
—
### Commands
| Command | Description | Permission |
|———|————-|————|
| `/vu give nuke [player]` | Give nuke rod | `vunstable.use` / `vunstable.give.others` |
| `/vu give stab [player]` | Give stab rod | `vunstable.use` / `vunstable.give.others` |
| `/vu update` | Check for updates | `vunstable.admin` |
| `/vu status` | Check optimization status | `vunstable.admin` |
| `/vu reload` | Reload configuration | `vunstable.admin` |
*Alias: `/vunstable` = `/vu`*
—
### Permissions
| Permission | Description | Default |
|————|————-|———|
| `vunstable.use` | Get rods for yourself | op |
| `vunstable.give.others` | Give rods to others | op |
| `vunstable.admin` | Admin commands | op |
—
### Configuration
View config.yml
“`yaml
# Auto-optimize spigot.yml max-tnt-per-tick for Nuke Rod
auto-optimize-spigot: true
nuke:
total-tnt: 2000
rings: 10
min-radius: 5
max-radius: 50
spawn-height: 67
velocity-y: -3.0
spawn-rate-per-tick: 200
sync-explosions: true
base-delay-ticks: 20
max-concurrent: 1
queue-size: 3
stab:
depth: 100
velocity: -10.0
fuse-ticks: 10
spawn-mode: INSTANT
“`
—
—
### Links
– 🌐 **Website:** https://vprolabs.xyz
– 💬 **Discord:** https://discord.gg/SNzUYWbc5Q
– 📦 **Modrinth:** https://modrinth.com/plugin/vunstable
– ☕ **Support:** https://ko-fi.com/v4bi
—
### License
This project is licensed under the **vProLabs General License**.
– Non-Commercial Use Only
– Attribution Required
– Share Alike
– [View Full License](https://www.vprolabs.xyz/projects/license/raw)
—