Description
This plugin helps protect your server from hackers and abusive staff in real-time. It utilizes an IP whitelist mechanism and integrates with a Discord bot to add and remove IP addresses.
Features
- Real-time protection
- Discord bot integration
- Asynchronous
- Op, gamemode, and permission checks
- Easy configuration
- Supports MySQL, SQLite, and YAML data storage
Commands
- /ipsecurity: Show plugin information.
- /ipsecurity reload: Reload plugin messages
Permissions
- ipsecurity.admin: Access ipsecurity and ipsecurity reload command
Compatibility
- Spigot: 1.8.x -> 1.20.x
- Java: 8
Support
Configuration
config.yml
#####################################
# DO NOT CHANGE THIS VALUE MANUALLY #
#####################################
config-version: 0
# Set to 'true' to enable debug mode
debug: true
storage:
# Type of storage, options include MYSQL, YAML, SQLITE
storage-type: SQLITE
mysql-properties:
# MYSQL database host address
host: localhost
# Port to connect to MYSQL
port: 3306
# Name of the database
database: database
# Username for MYSQL
username: root
# Password for MYSQL
password: ""
# Name of the table in the database
table: ipsecurity
# Additional parameters for MYSQL connection
# Example value: ?verifyServerCertificate=false&useSSL=true
# Note: Do not change this value if you do not know what it is
parameters: ""
# Connection pool settings
pool:
# Maximum number of connections in the pool
maximum-pool-size: 10
# Minimum number of idle connections in the pool
minimum-idle: 5
# Connection timeout in milliseconds
connection-timeout: 30000
general:
# Shutdown server when the plugin is disabled
shutdown-on-disable: true
# Timezone of the Minecraft server
# See https://garygregory.wordpress.com/2013/06/18/what-are-the-java-timezone-ids/ to find your timezone
timezone: Asia/Ho_Chi_Minh
# Date format
# See https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html to get your date format
date-format: dd/MM/yyyy HH:mm:ss
# Realtime protection
protect:
# Enable realtime protection
enable: true
# Interval for protection checks in tick
# Note: 1 second = 20 tick
interval: 100
methods:
# Enable protection for operator permissions
op: true
# Enable protection for game mode creative
gamemode: true
# List of permissions to be protected
permissions:
- "*"
- "group.admin"
discord:
# Discord bot token
# See https://docs.discordbotstudio.org/setting-up-dbs/finding-your-bot-token to get bot token
token: "INPUT_YOUR_BOT_TOKEN"
# Discord server ID
# Note: To get the server ID, open Discord, go to Settings → Advanced and enable developer mode.
# Then, right-click on the server title and select "Copy ID" to get the guild ID.
guild: "INPUT_YOUR_GUILD_ID"
# Role ID allowed to use this plugin
# Note: To get the role ID , enable developer mode in the Appearance section of your user settings, then go to the
# role menu in the server settings and right-click on the role you want the ID of, then click "Copy ID"
role: "INPUT_YOUR_ROLE_ID_CAN_USE_THIS_PLUGIN"
# Channel ID for notifications on Discord
# Note: To get the channel ID, open Discord, go to Settings > Advanced and enable developer mode. Then, right-click
# on the channel and select "Copy ID" to get the channel ID
notification-channel: "INPUT_YOUR_NOTIFY_CHANNEL_ID"messages.yml
#####################################
# DO NOT CHANGE THIS VALUE MANUALLY #
#####################################
version: 1
# Ingame messages
minecraft:
# Kick message displayed to players who need to verify their IP.
kick-message: "&7[&c&lIPSecurity&7] &eYou need to verify your IP address!"
# Message displayed to players when their IP has been verified.
verified: "&7[&c&lIPSecurity&7] &aYour IP has been verified."
# Message displayed to players when they don't have permission to use a command.
no-permission: "&7[&c&lIPSecurity&7] &cYou don't have permission to use this command!"
# Discord bot messages
discord:
# The default format of discord message
# All the discord message will have same format of default embed message, but they can override it
default-embed:
# Title of the default embed message.
title: "IPSecurity"
# Embed message author properties
author:
name: "Developed by KhanhHuynh"
url: "https://discordapp.com/users/717658004954021921"
icon: "https://cdn.discordapp.com/avatars/717658004954021921/c321b742c73981aa01427a462de2a845.png?size=2048"
# The footer text
footer: "%time%"
# The image of embed message
image: "https://1000logos.net/wp-content/uploads/2018/10/Minecraft-Logo.png"
# The thumbnail of embed message
thumbnail: "https://upload.wikimedia.org/wikipedia/commons/thumb/1/10/Userbox_creeper.svg/1200px-Userbox_creeper.svg.png"
# Note:
# - You can also use section such as author, footer, image, thumbnail in the message to override the default message values
# - You can use colors in two formats: hexadecimal color code (#FFFFFF) and hexadecimal converted to decimal.
# Ex: "#00FF00" (GREEN) or 65280 = #00FF00 because when you convert #00FF00 to decimal, it becomes 65280
# See https://www.rapidtables.com/convert/number/hex-to-decimal.html to convert
messages:
# Displayed message indicating successful verification
verified:
color: 65280 # or you can use "#00FF00"
messages:
- "**Player:** %player%"
- "**IP:** %ip%"
- "**Status:** Verified ✅"
# Displayed message indicating failed verification
verified-failed:
color: 16711680
messages:
- "**Player:** %player%"
- "**IP:** %ip%"
- "**Status:** Verification failed ❌"
# Displayed message indicating lack of permission
no-permission:
color: 16711680
messages:
- "You do not have permission to use this command!"
# Displayed message indicating wrong channel usage
wrong-channel:
color: 16711680
messages:
- "This command are not allowed on this channel!"
# Displayed message indicating invalid syntax
invalid-syntax:
color: 16776960
messages:
- "Invalid command syntax!"
# Displayed message indicating invalid IP format
invalid-ip-format:
color: 16776960
messages:
- "Invalid IP format!"
# Displayed message indicating successful IP setting
set-ip-successful:
color: 65280
messages:
- "Successfully set IP `%ip%` for player `%player%`"
# Displayed message indicating failed IP setting.
set-ip-failed:
color: 16711680
messages:
- "Failed to set IP `%ip%` for player `%player%`"
- "Please check the console for more information about the error"
# Displayed message indicating successful IP removal.
remove-ip-successful:
color: 65280
messages:
- "Removed the IP of player `%player%`"
# Displayed message indicating failed IP removal.
remove-ip-failed:
color: 16711680
messages:
- "Failed to remove IP of player player `%player%`"
- "Please check the console for more information about the error"
# Displayed message indicating player not found.
not-found-player:
color: 16776960
messages:
- "Could not find any player with name `%player%`"Notice
- Don't use the review or discussion section to report your issue.
- Join my discord server for better support.
Showcase
images
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta