# DS-PearlFix

**DS-PearlFix** is a lightweight plugin designed to solve a specific Minecraft exploit where players can use Ender Pearls to bypass walls, barriers, and corners. This plugin ensures fair gameplay by preventing this glitch without introducing additional complexity.

### Main Features

#### 🛡️ Advanced Protection

* **Robust Glitch Detection**: Detects EnderPearl teleport exploits
* **Automatic Correction**: Prevents players from bypassing walls
* **Violation Notifications**: Alerts staff about exploit attempts
* **Lightweight Solution**: Minimal performance impact

### Configuration

#### Settings.yml File

```yaml
# Version of the configuration file, do not
# modify this file or you will disrupt the
# version and a new file will be created.
Config-Version: 6.0
Plugin-Version: 6.0

# Plugin messages, you can edit them according to your needs.
Messages:
  Prefix: '<aqua>Fruit</aqua><white>Forge</white> <dark_gray><bold>» </bold></dark_gray>'
  Reload: '<green>Plugin ready!'
  No-Perms: "<red>You don't have permission to do that"
  Unsafe-Location: "<red>Teleport canceled due to unsafe location!"
  No-Corner: "<red>You cant teleport to a corner!"
  Very-Close: "<red>You can't throw a pearl so close to a block!"
  Block-Glitch-Message: "<red>%player% just tried to block glitch using an enderpearl at %coords%"

# Permission required to bypass the plugin
Permissions:
  Staff: 'pearlfix.message'
  Bypass: 'pearlfix.bypass'
  Reload: 'pearlfix.reload'

# Launch verification distance of the EnderPearl. I recommend NOT altering
# this value, but it is editable according to your needs. However, making
# it shorter could hinder detection, while making it longer could render the EnderPearl useless
Check-Distance: 1.75
```

#### Configuration Options

**Messages**

* **Prefix**: Prefix that appears in all plugin messages
* **Reload**: Message shown when the plugin reloads correctly
* **No-Perms**: Message shown when a player doesn't have permissions
* **Unsafe-Location**: Message when a teleport is canceled due to unsafe location
* **No-Corner**: Message when trying to teleport to a corner
* **Very-Close**: Message when trying to throw a pearl too close to a block
* **Block-Glitch-Message**: Alert message for staff when a glitch attempt is detected

**Permissions**

* **Staff**: `pearlfix.message` - Receive notifications about glitch attempts
* **Bypass**: `pearlfix.bypass` - Bypass plugin restrictions
* **Reload**: `pearlfix.reload` - Reload plugin configuration

**Technical Configuration**

* **Check-Distance**: `1.75` - Verification distance for EnderPearl launch
  * ⚠️ **Recommendation**: DO NOT alter this value
  * A shorter value could hinder detection
  * A longer value could render EnderPearls useless

### Commands

#### `/pearlfix reload`

Reloads the plugin configuration.

* **Required permission**: `pearlfix.reload`
* **Usage**: `/pearlfix reload`

### Permissions

| Permission         | Description                                       | Default |
| ------------------ | ------------------------------------------------- | ------- |
| `pearlfix.message` | Receive staff notifications about glitch attempts | OP      |
| `pearlfix.bypass`  | Bypass all plugin restrictions                    | OP      |
| `pearlfix.reload`  | Reload plugin configuration                       | OP      |

### How It Works

1. **Detection**: The plugin monitors all EnderPearl throws
2. **Verification**: Calculates the trajectory and destination of the pearl using `Check-Distance`
3. **Prevention**: Cancels teleports that could result in bypassing blocks
4. **Notification**: Alerts staff with permissions when a glitch attempt is detected

### Message Variables

In plugin messages you can use the following variables:

* `%player%` - Name of the player who attempted the glitch
* `%coords%` - Coordinates where the glitch was attempted

### Installation

1. Download the plugin `.jar` file
2. Place it in your server's `plugins/` folder
3. Restart the server
4. Configure permissions as needed
5. Customize messages in `Settings.yml` if desired

### Compatibility

* **Minecraft Version**: 1.13 - 1.21.7
* **Platforms**: Spigot, Paper, Purpur
* **Dependencies**: None

### Support

To report bugs or request features:

* **Discord**: <https://fruitforge.com/discord>

***

*Plugin developed by FruitForge Studio*


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.fruitforge.com/free-resources/ds-pearlfix.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
