# ManticProtector

![](/files/88e046f89a443c7e2b46e3c2c2d08791ec89b1d7)

🛒 [mantic.dev/product/manticprotector](http://mantic.dev/product/manticprotector) - $10.00\
🔐 Requires ManticLib (free) and supports from 1.8 upwards

### Protector Plugin Overview

Introducing **ManticProtector**, a plugin made to help server owners keep control of their Minecraft servers. It prevents anyone from gaining OP or other high-level permissions without your approval, and helps protect your server from hackers or griefers attempting to cause disruption. If you want a simple, reliable way to keep your server safe, ManticProtector has you covered.

### Key features of ManticProtector

* **Full Server Protection**\
  \&#xNAN;*Automatically blocks unauthorised attempts to gain OP, administrator permissions, or dangerous permission nodes.*
* **Protected Users System**\
  \&#xNAN;*Specify trusted players (developers, owners, admins) who are exempt from OP and permission checks.*
* **Operator Checker**\
  \&#xNAN;*A background task that scans for unauthorised OPs and takes action instantly.*
* **Command Monitoring**\
  \&#xNAN;*Detects suspicious or blocked commands used by players and executes custom punishment commands.*
* **Console OP Protection**\
  \&#xNAN;*Prevents even the console from opping untrusted players—fully configurable.*
* **Permission & Group Blacklists**\
  \&#xNAN;*Automatically detects and removes blacklisted permissions or groups when a player joins or triggers an event.*
* **Discord Integration**\
  \&#xNAN;*Multiple configurable Discord webhook templates for:*
  * *Unauthorized OP detection*
  * *Blocked command alerts*
  * *Blacklisted permission logs*
  * *IP / Geo mismatches*
  * *Mass punishment alerts*
  * *LuckPerms-related changes*

### Developer Section (Protector API)

{% code title="Protector API" %}

```
» ProtectorAPI#isListedUser(UUID) - Checks whether the specified UUID has a whitelist entry inside config.yml.
» ProtectorAPI#isAuthorizedUser(Player|UUID) - Returns true if the player/UUID is registered and allowed to have OP status according to their configuration entry.
» ProtectorAPI#getUser(Player|UUID|OfflinePlayer) - Fetches the corresponding User object from the configuration. (Returns null if the player is not listed.)
» ProtectorAPI#hasElevatedPermissions(Player) - Checks if the listed user is allowed OP or has any whitelisted groups assigned.
» ProtectorAPI#getAuthorizedUsers() - Returns a list of all users defined in the config.
» ProtectorAPI#getAuthorizedOppedUsers() - Returns all configured users who are marked as allowedOp = true.
» ProtectorAPI#getOnlineAuthorizedUsers() - Returns a list of currently online players that have allowedOp = true.
» ProtectorAPI#getAuthorizedUsernames() - Returns the usernames of all authorized OP users.
» ProtectorAPI#hasWhitelistedGroup(Player, String) - Checks if the user has a specific whitelisted group.
» ProtectorAPI#hasAnyWhitelistedGroup(Player) - Returns true if the user has any whitelisted group.
» ProtectorAPI#getAddressHistory(Player) - Gets the stored (hashed) IP history for the user.
» ProtectorAPI#getGeoHistory(Player) - Gets the stored geolocation history for the user.
» ProtectorAPI#getOnlineAuthorizedUsersMap() - Returns a map of authorized online players: { playerName -> playerUUID }.
» ProtectorAPI#getUsersInGroup(String) - Returns all configured users assigned to a given whitelisted group.
```

{% endcode %}

### 📸 Media

[NextSetup Guide](broken://pages/61eba0dbd2f40535091f04cc635e09d1fed52bf4)


---

# 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.mantic.dev/manticprotector.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.
