Sueta

IPSecurity-[1.8-1.21]

1.3

Protect the server from hackers, abuse

·Plugin

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

Discord

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

upload_2024-2-5_20-6-9.png
upload_2024-2-5_20-4-30.png
upload_2024-2-5_20-7-33.png
upload_2024-2-5_20-9-15.png
upload_2024-2-5_20-4-8.png
upload_2024-2-5_20-6-35.png

Similar projects

Plugin →