Added README.md and updated the global rule guis.

This commit is contained in:
wolf
2025-07-29 13:22:20 -05:00
parent cb223bbe0b
commit 402df54dcf
36 changed files with 1124 additions and 639 deletions

View File

@@ -1,128 +1,3 @@
# DupeAlias - An Advanced Dupe Plugin
**Make your server stand out by switching to DupeAlias, a powerful dupe plugin with niche features for unique servers.**
---
## 🌟 Why Choose DupeAlias?
DupeAlias isn't just another dupe plugin - it's a complete ecosystem for managing item behavior on your server. Whether you're running a creative build server, a unique survival experience, or a custom game mode. DupeAlias gives you unprecedented control over how items behave.
### ✨ Key Features
**🎯 Smart Item Tagging System**
- **UNIQUE** - Prevent specific items from being duplicated
- **FINAL** - Lock items against any modifications
- **INFINITE** - Create truly infinite resources that never run out
- **PROTECTED** - Make items completely inert and unusable
**🔧 Advanced Global Rules Engine**
- Create complex rules based on item properties
- Match by material, enchantments, name patterns, lore, and more
- Support for armor trims, potion effects, attributes, and custom model data
- Flexible matching modes (AND, OR, NAND, XOR)
**🖥️ Multiple Duplication Interfaces**
- **Replicator GUI** - Single-item duplication with visual feedback
- **Chest GUI** - Multi-item container-style duplication
- **Inventory GUI** - Mirror your entire inventory for easy access
- **Menu GUI** - Central hub for all duplication options
**⚡ Performance & Customization**
- Per-permission refresh rates and cooldowns
- Extensive configuration options
- Session persistence (optional)
- Beautiful, modern GUIs with progress indicators
---
## 🎮 Perfect For These Server Types
- **Creative Servers** - Give builders infinite blocks while protecting special items
- **Survival+** - Create unique economies with controlled item flow
- **Minigames** - Provide infinite consumables while preventing exploitation
- **RPG Servers** - Protect quest items and create unbreakable gear
- **Prison Servers** - Control contraband while allowing resource flow
---
## 📸 Screenshots
*[Image: Main admin panel showing the clean, modern interface with gradient backgrounds and intuitive navigation]*
*[Image: Global rules editor displaying the complex criteria system with material selection, enchantment matching, and tag application]*
*[Image: Replicator GUI in action showing the animated rings, progress bars, and real-time item duplication]*
*[Image: Held item management interface demonstrating individual tag application with conflict warnings]*
*[Image: Configuration menu showcasing the extensive customization options and color-coded settings]*
---
## ⚙️ Quick Setup
1. Drop `DupeAlias.jar` into your plugins folder
2. Restart your server
3. Use `/da` to open the admin panel
4. Configure your global rules and permissions
5. Let your players use `/dupe` to start duplicating!
---
## 🔑 Permissions Overview
- `dupealias.admin` - Access to admin panel and configuration
- `dupealias.dupe` - Basic duplication command access
- `dupealias.gui.*` - Access to specific GUI types
- `dupealias.*.bypass` - Bypass tag restrictions (use carefully!)
- Permission-based refresh rates: `dupealias.gui.replicator.refresh.1`
---
## 💡 Advanced Use Cases
**Crate Key Protection**
Create a global rule that makes all items containing "key" in their name both UNIQUE and PROTECTED, preventing duplication and accidental use.
**Infinite Building Materials**
Set up INFINITE tags on common building blocks, giving your builders unlimited resources while maintaining server economy balance.
**Quest Item Security**
Use FINAL tags on story items to prevent players from renaming or modifying important quest objects.
**Admin Tool Management**
Combine PROTECTED and UNIQUE tags to create admin-only items that can't be duplicated or used by regular players.
---
## 🛠️ Developer-Friendly
Built on the robust Alias Development Framework with:
- Clean, documented API
- Event-driven architecture
- Extensive configuration options
- JSON-based data storage
- Full backward compatibility
---
## 📋 Requirements
- **Minecraft Version**: 1.21+
- **Server Software**: Paper, Purpur, or compatible
- **Java Version**: 17+
---
## 🤝 Support & Updates
DupeAlias is actively maintained with regular updates and feature additions. Join our community for support, suggestions, and to see what's coming next!
**Get DupeAlias today and revolutionize how items work on your server!**
---
# DupeAlias Documentation
## Table of Contents
@@ -135,17 +10,15 @@ DupeAlias is actively maintained with regular updates and feature additions. Joi
6. [Permissions System](#permissions-system)
7. [Configuration](#configuration)
8. [Commands](#commands)
9. [Common Scenarios](#common-scenarios)
10. [Troubleshooting](#troubleshooting)
---
9. [Troubleshooting](#troubleshooting)
---
## Installation & Setup
### Prerequisites
- Minecraft 1.21 or higher
- Paper, Purpur, or compatible server software
- Java 17 or higher
- Minecraft 1.21.5
- Paper server software
- Java 21 or higher
### Installation Steps
1. Download the DupeAlias JAR file
@@ -159,8 +32,7 @@ DupeAlias is actively maintained with regular updates and feature additions. Joi
3. Navigate to Configuration → Common Config to customize colors and branding
4. Set up your first global rules or start tagging items manually
---
---
## Core Concepts
### Item Tags
@@ -178,8 +50,7 @@ Individual item tags **always override** global rules. This allows for fine-grai
- **Individual Tags**: Stored directly on the item's metadata, apply only to that specific item instance
- **Global Rules**: Server-wide rules that apply tags based on item properties like material, name, enchantments, etc.
---
---
## Item Tags System
### UNIQUE Tag
@@ -191,13 +62,9 @@ Individual item tags **always override** global rules. This allows for fine-grai
- Admin-only equipment
- Currency items
**Conflicts**: Cannot be combined with INFINITE (creates a logical paradox)
**Conflicts**: Cannot be combined with INFINITE.
**Example**: A crate key that should never be duplicated
```
Individual: Right-click key in hand → Apply UNIQUE tag
Global: All items with "key" in name → Apply UNIQUE tag
```
### FINAL Tag
**Purpose**: Prevents any modification to the item
@@ -214,12 +81,6 @@ Global: All items with "key" in name → Apply UNIQUE tag
- Rank kits that shouldn't be modified
- Event rewards with special formatting
**Example**: A quest sword that must keep its name
```
Individual: Apply FINAL tag to specific sword
Global: All items with "Quest" in lore → Apply FINAL tag
```
### INFINITE Tag
**Purpose**: Maintains maximum stack size and refills items
@@ -230,17 +91,11 @@ Global: All items with "Quest" in lore → Apply FINAL tag
**Use Cases**:
- Creative-style building materials
- Infinite arrows for archery ranges
- "Infinity" enchantment for tipped arrows
- Unlimited consumables for events
**Conflicts**: Cannot be combined with UNIQUE or PROTECTED
**Example**: Infinite building blocks for creative areas
```
Individual: Apply INFINITE to held stone blocks
Global: All concrete blocks → Apply INFINITE tag
```
### PROTECTED Tag
**Purpose**: Makes items completely inert and unusable
@@ -260,14 +115,7 @@ Global: All concrete blocks → Apply INFINITE tag
**Conflicts**: Cannot be combined with INFINITE
**Example**: A decorative trophy that can't be used
```
Individual: Apply PROTECTED to specific trophy
Global: All items with "Display" in name → Apply PROTECTED tag
```
---
---
## Global Rules Engine
### Creating Global Rules
@@ -289,92 +137,64 @@ Select which tags this rule will apply to matching items. Multiple tags can be s
- **NAND**: Not all criteria match
- **XOR**: Exactly one criteria matches
Note that if no criteria are selected, any material or ItemsAdder item will match.
#### Material Matching
- **IGNORE**: Apply to all materials
- **WHITELIST**: Only apply to selected materials
- **BLACKLIST**: Apply to all except selected materials
- **IGNORE**: Apply to all materials and ItemsAdder items
- **WHITELIST**: Only apply to selected materials and ItemsAdder items
- **BLACKLIST**: Apply to all except selected materials and ItemsAdder items
### Criteria Types
#### Name Regex
Match items based on display name patterns using regular expressions.
```
Example: ".*[Kk]ey.*" matches any item with "key" or "Key" in the name
```
Match items based on display name patterns using regular expressions.
``` Example: ".*[Kk]ey.*" matches any item with "key" or "Key" in the name ```
#### Lore Regex
Match items based on lore content using regular expressions.
```
Example: ".*Special.*" matches items with "Special" anywhere in lore
```
Match items based on lore content using regular expressions.
``` Example: ".*Special.*" matches items with "Special" anywhere in lore ```
#### Compound Tag Regex
Match an item based on its compound tag generated from `ItemStack#getAsComponentString()`
```Example: ".*(nutrition).*|.*(saturation).*" Matches any custom food item```
#### NBT Tag Regex
Match an item based on its NBT tag generated from `ItemStack#getAsString()`
```Example: .*{dupenotallowed: 1b}.* matches items from DupePlus's blacklist```
#### Enchantments
Match items that have specific enchantments at minimum levels.
```
Example: Sharpness V → matches items with Sharpness 5 or higher
```
Match items that have specific enchantments at minimum levels.
``` Example: Sharpness V → matches items with Sharpness 5 or higher ```
#### Attributes
Match items with specific attribute modifiers.
```
Example: Attack Damage ≥ 10.0 → matches weapons with high damage
```
Match items with specific attribute modifiers.
``` Example: Attack Damage ≥ 10.0 → matches weapons with high damage ```
#### Potion Effects
Match potions/foods with specific effects and amplifiers.
```
Example: Strength II → matches items giving Strength 2 or higher
```
Match potions/foods with specific effects and amplifiers.
``` Example: Strength II → matches items giving Strength 2 or higher ```
#### Model Data
Match items with specific custom model data values.
```
Example: 12345 → matches items with CustomModelData: 12345
```
Match items with specific custom model data values.
``` Example: 12345 → matches items with CustomModelData: 12345 ```
#### Item Flags
Match items with specific visibility flags.
```
Example: HIDE_ENCHANTS → matches items that hide enchantments
```
Match items with specific visibility flags.
``` Example: HIDE_ENCHANTS → matches items that hide enchantments ```
#### Armor Trim
Match armor pieces with specific trim patterns or materials.
```
Example: Silence Pattern + Gold Material → matches gold silence trim armor
```
Match armor pieces with specific trim patterns or materials.
``` Example: Silence Pattern + Gold Material → matches gold silence trim armor ```
### Example Rules
#### Protect All Crate Keys
```
Applied Tags: UNIQUE, PROTECTED, FINAL
Match Mode: OR
Name Regex: ".*[Kk]ey.*"
Lore Regex: ".*[Cc]rate.*"
```
``` Applied Tags: UNIQUE, PROTECTED, FINAL Match Mode: OR NBT Tag Regex: ".*excellentcrates.*" Lore Regex: ".*[Cc]rate.*" ```
#### Make Netherite Gear Unmodifiable
```
Applied Tags: FINAL
Match Mode: AND
Material Mode: WHITELIST
Materials: NETHERITE_SWORD, NETHERITE_AXE, NETHERITE_PICKAXE, etc.
```
``` Applied Tags: FINAL Match Mode: AND Material Mode: WHITELIST Materials: NETHERITE_SWORD, NETHERITE_AXE, NETHERITE_PICKAXE, etc. ```
#### Infinite Creative Blocks
```
Applied Tags: INFINITE
Match Mode: AND
Material Mode: WHITELIST Materials: STONE, DIRT, WOOD, CONCRETE variants
```
---
``` Applied Tags: INFINITE Match Mode: AND Material Mode: WHITELIST Materials: STONE, DIRT, WOOD, CONCRETE variants ```
---
## Duplication GUIs
### Replicator GUI
**Access**: `/dupe replicator` or through main menu
**Access**: `/dupe replicator` or through main menu
**Permissions**:
- `dupealias.gui.replicator`: Main Access
- `dupealias.gui.replicator.cooldown.<integer>`: Sets the input swap cooldown time (milliseconds).
- `dupealias.gui.replicator.refresh.<integer>`: Sets the amount of ticks it takes for the output item to restock.
- `dupealias.gui.replicator.keep`: Determines if the player should keep the items in the chest when they close it.
**Features**:
- Single-item focused duplication
@@ -391,13 +211,18 @@ Material Mode: WHITELIST Materials: STONE, DIRT, WOOD, CONCRETE variants
**Best For**: Quick duplication of single item types
### Chest GUI
**Access**: `/dupe chest` or through main menu
**Access**: `/dupe chest` or through main menu
**Permissions**:
- `dupealias.gui.chest`: Main Access
- `dupealias.gui.chest.cooldown.<integer>`: Sets the input swap cooldown time (milliseconds).
- `dupealias.gui.chest.keep`: Determines if the player should keep the items in the chest when they close it.
- `dupealias.gui.chest.keepondeath`: If set to false, all items in the chest will be dropped on the ground on death.
**Features**:
- Multi-item container interface
- 4 input columns, 4 output columns
- Individual item refresh timers
- Session persistence (if enabled)
- Session persistence (doesn't persist over reboots)
**How to Use**:
1. Open the GUI
@@ -405,10 +230,13 @@ Material Mode: WHITELIST Materials: STONE, DIRT, WOOD, CONCRETE variants
3. Take duplicated copies from the right 4 columns
4. Items refresh based on configured delays
**Best For**: Bulk duplication of multiple item types
**Best For**: Duplication of items you'll commonly need through session persistence.
### Inventory GUI
**Access**: `/dupe inventory` or through main menu
**Access**: `/dupe inventory` or through main menu
**Permissions**:
- `dupealias.gui.chest`: Main Access
- `dupealias.gui.chest.refresh.<integer>`: Sets the amount of ticks for the output items to restock
**Features**:
- Mirror of your actual inventory
@@ -425,7 +253,8 @@ Material Mode: WHITELIST Materials: STONE, DIRT, WOOD, CONCRETE variants
**Best For**: Easy access to copies of everything you're carrying
### Menu GUI
**Access**: `/dupe gui` or `/dupe` (if set as default)
**Access**: `/dupe gui` or `/dupe` (if set as default)
**Permission**: `dupealias.gui` If granted, all other GUIs will be granted too unless specifically set to false.
**Features**:
- Central hub for all GUI types
@@ -437,167 +266,170 @@ Material Mode: WHITELIST Materials: STONE, DIRT, WOOD, CONCRETE variants
2. Click on the GUI type you want to use
3. Access is controlled by permissions
---
---
## Permissions System
### Core Permissions
#### Admin Access
```yaml
dupealias.admin: true # Access to admin panel and configuration
```
```yaml
dupealias.admin: true # Access to admin panel and configuration
```
#### Basic Duplication
```yaml
dupealias.dupe: true # Access to /dupe command
dupealias.dupe.cooldown.<integer>: false # Cooldown for command duping (milliseconds)
```
```yaml
dupealias.dupe: true # Access to /dupe command
dupealias.dupe.cooldown.<integer>: false # Cooldown for command duping (milliseconds)
```
#### GUI Access
```yaml
dupealias.gui: true # Access to all GUIs
dupealias.gui.replicator: true # Access to replicator GUI
dupealias.gui.inventory: true # Access to inventory GUI dupealias.gui.chest: true # Access to chest GUI
```
```yaml
dupealias.gui: true # Access to all GUIs
dupealias.gui.replicator: true # Access to replicator GUI
dupealias.gui.inventory: true # Access to inventory GUI
dupealias.gui.chest: true # Access to chest GUI
```
### Advanced Permissions
#### Session Persistence
```yaml
dupealias.gui.replicator.keep: false # Keep replicator items on close
dupealias.gui.chest.keep: false # Keep chest items on close
dupealias.gui.chest.keepondeath: false # Keep chest items on death
```
```yaml
dupealias.gui.replicator.keep: false # Keep replicator items on close
dupealias.gui.chest.keep: false # Keep chest items on close
dupealias.gui.chest.keepondeath: false # Keep chest items on death
```
#### Permission Based Refresh Rates
```yaml
dupealias.gui.replicator.refresh.<integer>: false # Ticks of refresh cooldown
dupealias.gui.replicator.cooldown.<integer>: false # Ticks of re-input cooldown
dupealias.gui.inventory.refresh.<integer>: false # Ticks of refresh cooldown
dupealias.gui.chest.refresh.<integer>: false # Ticks of refresh cooldown
```
```yaml
dupealias.gui.replicator.refresh.<integer>: false # Ticks of refresh cooldown
dupealias.gui.replicator.cooldown.<integer>: false # Ticks of re-input cooldown
dupealias.gui.inventory.refresh.<integer>: false # Ticks of refresh cooldown
dupealias.gui.chest.refresh.<integer>: false # Ticks of refresh cooldown
```
#### Tag Bypasses (Use Carefully!)
```yaml
dupealias.unique.bypass: false # Can dupe UNIQUE items
```yaml
dupealias.unique.bypass: false # Can dupe UNIQUE items
dupealias.final.bypass: false # Can modify FINAL items
dupealias.protected.bypass: false # Can use PROTECTED items
```
dupealias.protected.bypass: false # Can use PROTECTED items
```
#### Special Permissions
```yaml
dupealias.infinite: true # Can use INFINITE items
```
```yaml
dupealias.infinite: true # Can use INFINITE items
```
### Permission Hierarchy
The plugin uses a "lowest value wins" system for numeric permissions. If a player has both `refresh.20` and `refresh.5`, they will get the 5-tick refresh cooldown.
The plugin generally uses a "lowest value wins" system for numeric permissions. If a player has both `refresh.20` and `refresh.5`, they will get the 5-tick refresh cooldown. There is an exception to this rule however. For the permission `dupealias.dupe.limit.<integer>`, it will take the highest value given. This is because I am lazy and did not add a default limit for non ranked players.
### Example Permission Sets
#### VIP Player
```yaml
groups:
vip:
permissions:
- dupealias.dupe - dupealias.gui - dupealias.gui.replicator.refresh.5 # Faster refresh
- dupealias.gui.replicator.cooldown.10 # Shorter cooldown
- dupealias.dupe.cooldown.0 # No command cooldown
```
```yaml
groups:
vip:
permissions:
- dupealias.dupe
- dupealias.gui
- dupealias.gui.replicator.refresh.5 # Faster refresh
- dupealias.gui.replicator.cooldown.10 # Shorter cooldown
- dupealias.dupe.cooldown.0 # No command cooldown
```
#### Staff Member
```yaml
groups:
staff:
permissions: - dupealias.admin # Full admin access
- dupealias.gui.replicator.refresh.1 # Instant refresh
- dupealias.gui.*.keep # Session persistence
- dupealias.final.bypass # Can modify final items
```
---
```yaml
groups:
staff:
permissions:
- dupealias.admin # Full admin access
- dupealias.gui.replicator.refresh.1 # Instant refresh
- dupealias.gui.*.keep # Session persistence
- dupealias.final.bypass # Can modify final items
```
---
## Configuration
### Main Configuration (`config.json`)
#### Duplication Settings
```json
{
"dupeCooldownMillis": 1000, // Command cooldown in milliseconds
"defaultDupeGui": "REPLICATOR" // Default GUI (REPLICATOR/INVENTORY/CHEST/MENU)
}
```
```json
{
"dupeCooldownMillis": 1000, // Command cooldown in milliseconds
"defaultDupeGui": "REPLICATOR" // Default GUI (REPLICATOR/INVENTORY/CHEST/MENU)
}
```
#### GUI Refresh Rates
```json
{
"replicator": {
"baseRefreshDelayTicks": 1, // Base item refresh delay
"baseInputCooldownTicks": 20 // Base input change cooldown
}, "chest": {
"baseRefreshDelayTicks": 1 // Base item refresh delay
},
"inventory": {
"baseRefreshDelayTicks": 1 // Base item refresh delay
}}
```
```json
{
"replicator": {
"baseRefreshDelayTicks": 1, // Base item refresh delay
"baseInputCooldownTicks": 20 // Base input change cooldown
},
"chest": {
"baseRefreshDelayTicks": 1 // Base item refresh delay
},
"inventory": {
"baseRefreshDelayTicks": 1 // Base item refresh delay
}
}
```
#### Command Blocking
```json
{
"finalCommandRegex": [
"\"(?:itemname|iname)\"gmi", // Block item naming commands "\"(?:itemlore|lore)\"gmi" // Block lore modification commands ]}
```
```json
{
"finalCommandRegex": [
"\"(?:itemname|iname)\"gmi", // Block item naming commands
"\"(?:itemlore|lore)\"gmi" // Block lore modification commands
]
}
```
#### Tag Lore Customization (MiniMessage)
```json
{
"trueTagLore": {
"UNIQUE": "<dark_blue><bold>|</bold><blue> Unique",
"FINAL": "<dark_red><bold>|</bold><red> Final",
"INFINITE": "<dark_green><bold>|</bold><green> Infinite",
"PROTECTED": "<dark_purple><bold>|</bold><light_purple> Protected"
},
"falseTagLore": {
"UNIQUE": "<dark_blue><bold>|</bold><blue> Dupeable",
"FINAL": "<dark_red><bold>|</bold><red> Mutable",
"INFINITE": "<dark_green><bold>|</bold><green> Finite",
"PROTECTED": "<dark_purple><bold>|</bold><light_purple> Unprotected"
}
}
```
```json
{
"trueTagLore": {
"UNIQUE": "<dark_blue><bold>|</bold><blue> Unique",
"FINAL": "<dark_red><bold>|</bold><red> Final",
"INFINITE": "<dark_green><bold>|</bold><green> Infinite",
"PROTECTED": "<dark_purple><bold>|</bold><light_purple> Protected"
},
"falseTagLore": {
"UNIQUE": "<dark_blue><bold>|</bold><blue> Dupeable",
"FINAL": "<dark_red><bold>|</bold><red> Mutable",
"INFINITE": "<dark_green><bold>|</bold><green> Finite",
"PROTECTED": "<dark_purple><bold>|</bold><light_purple> Unprotected"
}
}
```
### Common Configuration (`common.json`)
#### Visual Customization
```json
{
"mainColor": 11184895, // Primary color (hex: AAAAFF)
"secondaryColor": 909055, // Secondary color (hex: 00DDFF)
"pluginName": "DupeAlias", // Display name
"flatPrefix": "&9DupeAlias> &7", // Legacy chat prefix
"flat": false // Use legacy formatting
}
```
```json
{
"mainColor": 11184895, // Primary color (hex: AAAAFF)
"secondaryColor": 909055, // Secondary color (hex: 00DDFF)
"pluginName": "DupeAlias", // Display name
"flatPrefix": "&9DupeAlias> &7", // Legacy chat prefix
"flat": false // Use legacy formatting
}
```
#### Debug Settings
```json
{
"debugMode": false, // Enable debug output
"debuggerExclusions": [] // Methods to exclude from debug
}
```
---
```json
{
"debugMode": false, // Enable debug output
"debuggerExclusions": [] // Methods to exclude from debug
}
```
---
## Commands
### Administrative Commands
#### `/dupealias` (Aliases: `/da`)
**Permission**: `dupealias.admin`
**Permission**: `dupealias.admin`
**Description**: Main administrative command
**Subcommands**:
@@ -625,7 +457,7 @@ groups:
### Player Commands
#### `/dupe`
**Permission**: `dupealias.dupe`
**Permission**: `dupealias.dupe`
**Description**: Main duplication command
**Usage**:
@@ -642,35 +474,35 @@ groups:
### Common Issues
#### "You cannot dupe unique items"
**Cause**: Item has UNIQUE tag or matches global rule
**Cause**: Item has UNIQUE tag or matches global rule
**Solution**:
- Check `/da` → Held Item Actions to see current tags
- Review global rules that might be applying UNIQUE tag
- Use `/da tag UNIQUE remove` to remove individual tag
#### Items not refreshing in GUI
**Cause**: Long refresh delay or permission issues
**Cause**: Long refresh delay or permission issues
**Solution**:
- Check player has appropriate GUI permissions
- Verify refresh rate permissions (lower numbers = faster)
- Ensure player isn't hitting cooldown limits
#### "You cannot modify final items"
**Cause**: Item has FINAL tag blocking modifications
**Cause**: Item has FINAL tag blocking modifications
**Solution**:
- Check item tags in admin panel
- Use `/da tag FINAL remove` if needed
- Grant `dupealias.final.bypass` permission for admins
#### Global rules not applying
**Cause**: Rule criteria not matching or individual tags overriding
**Cause**: Rule criteria not matching or individual tags overriding
**Solution**:
- Test rule criteria with `/da rule info <index>`
- Check match mode (AND vs OR)
- Remember individual tags override global rules
#### GUI won't open
**Cause**: Missing permissions or plugin conflicts
**Cause**: Missing permissions or plugin conflicts
**Solution**:
- Verify player has `dupealias.gui` permission
- Check for inventory plugin conflicts
@@ -678,26 +510,19 @@ groups:
### Debug Mode
Enable debug mode to troubleshoot issues:
```
/da debug toggle
```
Enable debug mode to troubleshoot issues: ``` /da debug toggle ```
This will show detailed information about:
- Tag checking processes
- Global rule matching
- Permission calculations
- GUI state changes
Exclude noisy methods:
```
/da debug exclude <method_name>
```
Exclude noisy methods: ``` /da debug exclude <method_name> ```
### Performance Considerations
#### Large Player Counts
- Use session persistence sparingly
- Don't use GUI refresh or input cooldowns.
- Monitor server TPS with `/tps`
#### Complex Global Rules
@@ -706,19 +531,17 @@ Exclude noisy methods:
- Limit the number of active global rules
#### GUI Optimization
- Set appropriate refresh rates based on server performance
- Consider disabling session persistence for busy servers
- Use cooldowns to prevent spam
---
---
### Getting Help
If you encounter issues not covered in this documentation:
1. Enable debug mode and check console logs
2. Test with a minimal permission set
3. Verify your global rules are correctly configured
4. Check for conflicts with other plugins
2. Verify your global rules are correctly configured
3. Check for conflicts with other plugins
4. Join the [Alias Development](https://trouper.me/alias) discord
Remember that individual item tags always override global rules, and bypass permissions should be used carefully as they can compromise your server's item security system.
Remember that individual item tags always override global rules, and bypass permissions should be used carefully as they can compromise your server's item security system.