NekoList (Whitelist)

Advanced whitelist management system with Discord integration and multi-language support

937

Quick challenge

How far can you run before the mobs catch you?

NekoList (Whitelist)

NekoList

A modern whitelist plugin with database support, Folia compatibility, and Discord integration.

[<kbd> 
🇺🇸 English (US) [Current]
 </kbd>](https://github.com/hanamuramiyu/NekoList/blob/main/README.md) | <kbd> 
 🇯🇵 日本語 (ja-JP)
 </kbd>
| <kbd> 
 🇨🇳 简体中文 (zh-CN)
 </kbd>

✨ Features

🗄️ Database & Storage

- Data Persistence: Use either file-based storage or MySQL/MariaDB databases - Data Persistence: Seamlessly switches to file storage if database connection fails - Data Persistence: Guaranteed data integrity across server restarts and plugin reloads

⚡ Performance & Compatibility

- Java 21: Full compatibility with Folia servers using adaptive schedulers - Java 21: MiniMessage support for rich text formatting with `<color>` tags - Java 21: Built with the latest Java for optimal performance and security

🔐 Security & Management

- Role-Based Permissions: Advanced player verification using UUIDs with nickname fallback - Role-Based Permissions: Automatic player data synchronization on login - Role-Based Permissions: Efficient database connections using HikariCP - Role-Based Permissions: Granular Discord permission control with user and role whitelists

---

🚀 Installation

System Requirements

- Bukkit/Paper/Purpur/Folia or higher - Bukkit/Paper/Purpur/Folia or higher - Bukkit/Paper/Purpur/Folia server

Installation Steps:

1. Download the latest `.jar` file from Modrinth or GitHub Releases 2. Place the `.jar` file into your server's `plugins` folder 3. Start or restart your server 4. Configure `plugins/NekoList/config.yml` as needed

---

⚙️ Configuration

Basic Setup

```yaml

NekoList Configuration v2.0.0

language: "en-US"

Available languages: en-US, en-GB, es-ES, es-419, ja-JP, ru-RU, uk-UA, zh-CN, zh-TW

Database settings

database: type: "file" # "file" or "mysql" mysql: host: "localhost" port: 3306 database: "minecraft" username: "username" password: "password" table: "whitelist" use-ssl: false connection-timeout: 30000

Discord Bot settings

discord-bot: enabled: false token: "YOUR_BOT_TOKEN_HERE" allowed-roles: [] allowed-users: [] ```

---

🔧 Commands & Permissions

In-Game Commands (`/whitelist`)

- `/whitelist help` - Show available commands - `/whitelist on` - Enable the whitelist - `/whitelist off` - Disable the whitelist - `/whitelist list` - List whitelisted players - `/whitelist add <player>` - Add a player to whitelist - `/whitelist remove <player>` - Remove a player from whitelist - `/whitelist reload` - Reload configuration

Permission Nodes: - `nekolist.use` - Use whitelist commands - `nekolist.bypass` - Bypass whitelist checks - `nekolist.admin` - Full administrative access

Discord Slash Commands

- `/ping` - Check bot latency - `/whitelist add <player>` - Add player to whitelist - `/whitelist remove <player>` - Remove player from whitelist - `/whitelist list` - List whitelisted players - `/whitelist status` - Check whitelist status - `/whitelist reload` - Reload plugin configuration

---

🚨 Important Notes for v2.0.0

⚠️ Breaking Changes

1. Configuration Updates: v2.0.0+ only supports Bukkit, Paper, Purpur, and Folia servers 2. Configuration Updates: Language files now use `<color>` tags instead of legacy `&` codes 4. Configuration Updates: Some config options have been restructured

🔄 Migration from v1.x

1. Update language files: Copy `plugins/NekoList/whitelist.yml` 2. Update language files: Convert `&` codes to MiniMessage format: ```yaml

Old format (v1.x)

player-added: "&aPlayer %player% has been added to whitelist."

New format (v2.0.0)

player-added: "<green>Player %player% has been added to whitelist." ``` 3. Velocity Users: Continue using v1.2.1 for Velocity compatibility

---

🌐 Adding New Languages

1. Navigate to `plugins/NekoList/lang/` directory 2. Copy `en-US.yml` as a template 3. Rename to your language code (e.g., `fr-FR.yml`, `de-DE.yml`) 4. Translate all values using MiniMessage format (`<color>` tags) 5. Update `language` setting in `config.yml`

Bold text - `<red>` - Red text - `<green>` - Green text - `<yellow>` - Yellow text - `<gray>` - Gray text - `<gold>` - Gold text - `<bold>` - Bold text

---

🏗️ Building from Source

```bash

Clone repository

git clone https://github.com/hanamuramiyu/NekoList.git cd NekoList

Build plugin

./gradlew build

Output file: build/libs/NekoList-2.0.0.jar

```

Requirements: - Java 21 JDK - Gradle 9.2.0+

---

🤝 Contributing

Contributions are welcome! Please follow these steps: 1. Fork the repository 2. Create a feature branch 3. Make your changes 4. Submit a Pull Request

Please ensure your code follows the existing style and includes appropriate tests.

---

🐛 Issue Reporting

Found a bug or have a feature request? Please: 1. Check existing Issues 2. Create a new issue with clear description 3. Include server logs and configuration details 4. Specify your server type and version

---

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

---

Made with ❤️ by Hanamura Miyu

*Looking for Velocity support? Use v1.2.1 for Velocity compatibility.*

ADS