Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for Loving11ish

A simple plugin to detect/manage a player's client. | With Folia Support |

Report ClientDetector?
THIS PROJECT IS NOW UNDERGOING A COMPLETE REWRITE FROM SCRATCH!
NO UPDATES SHALL BE PROVIDED UNTIL THIS PROCESS IS COMPLETE!

HOW IT WORKS** When a player joins a server, his client sends a packet (PlayInCustomPayload) to the server, also known as PluginMessaging. This plugin is "catching" this information (using the PacketEvents API, https://github.com/retrooper/packetevents) when it's sent to the server, and checks its content for client-specific "messages". Most clients are detectable with this method, but some clients act like they are "vanilla" (standard Minecraft) clients. Some other (hack-)clients spoof this method by sending "false" packet(s) to the server, this cannot be stopped and will always be possible.

Want to try out the very latest dev builds? [Click here] Use the above dev build at your own risk! Please follow any and ALL instructions provided with EACH dev build released!

MAIN FEATURES

  • Client Detection - Detect the client of players and automatically kick unwanted clients.
  • Mod Detection - Detect the mods players use and automatically kick unwanted mods.
  • Client Control - Manage the client/mods of players (only compatible clients/mods).
  • Forge Mod Detection - Detect Forge mods (for now only 1.8 - 1.12.2 Forge).
  • Cross Server Notifications - Your staff will be informed if a player joins another server with a detected client/mod.
  • Advanced Alert System - You can configure the way ClientDetector notifies your staff.
  • BungeeCord Compatible - You can use ClientDetector on BungeeCord server(s).
  • ViaVersion Compatible - You can use ClientDetector together with ViaVersion.

COMMANDS

  • /clientdetector - Main command, sends a message containing name, version and author.
  • /clientdetector help - Sends information about the command system.
  • /clientdetector player client - Returns a message containing the client which the player is using.
  • /clientdetector player mods - Returns a message/list containing the mods which the player is using.
  • /clientdetector player version - Returns a message containing the Minecraft version (1.8, ..., 1.17.1).
  • /clientdetector player labyaddons - Returns a message/list containing the LabyMod Addons the player is using.
  • /clientdetector forge - Returns a message/list containing the Forge mods the player is using.

PERMISSIONS

  • 'clientdetector.notify' - Permission to get informed when a player's client/mod is detected (can be changed trough config.yml).
  • 'clientdetector.command' - Permission to use the commands.
  • 'clientdetector.bypass' - Bypass all punishments.

HOW TO INSTALL

  1. Single Spigot/Bukkit Server [INDENT]1. Copy the plugin into the plugin folder of the server.
  1. Restart the server.
  2. Configure the plugin.[/INDENT]
  1. BungeeCord Network (BungeeCord Netzwerk) [INDENT]1. Copy the plugin into the plugin folder of your BungeeCord.
  1. Copy the plugin into the plugin folder of all sub servers.
  2. Be sure that "crossServerNotifications" is set to 'true' in config.yml*.*
  3. Restart BungeeCord and all servers ClientDetector was installed on*.*
  4. Configure the plugin.[/INDENT]

COMPATIBILITY ClientDetector works on all versions, starting from 1.8. It also works with most forks, such as Spigot, PaperSpigot, and Tuinity. It also works with proxies like BungeeCord. When using ClientDetector on a proxy network, you have to install it on Spigot/Bukkit and BungeeCord side.

PLACEHOLDERS

  • „%clientdetector_client_name%“ - Returns the name of the client that the player is using.
  • „%clientdetector_client_version%“ - Returns the version of the client that the player is using.
  • „%clientdetector_forge_user%“ - Returns ‘true’ or ‘false’ depending on if the player is using Forge.
  • %clientdetector_forge_list%“ - Returns the mods the player is using.
  • „%clientdetector_bedrock_player%“ - Returns ’true’ or ‘false’ depending on if the player joined through GeyserMC, Floodgate.
  • „%clientdetector_labymod_addons%“ - Returns the labymod addons the player is using.

CLIENT/MOD DETECTION A list of detected clients / mods, most of them are tested. In total 22 clients / mods are detected by the plugin. Clients:

  • Forge

  • 5Zig Mod

  • LabyMod

  • Lunar Client

  • Polar Client

  • MysteryMod

  • Pixel Client

  • LiteLoader

  • PvPLounge Client

  • Fabric

  • Rift

  • Cracked Vape

  • Vivecraft

  • Hyperium

  • PXMod

  • Winterware

  • Feather Client

  • Minecraft-Console-Client

  • Aristois (Experimental - only older versions 1.8, 1.12.2, not 1.16.5 or newer)

Mods:

  • Better Sprinting Mod
  • World Downloader
  • JourneyMap
  • WorldEditCUI

CLIENTCONTROL

  • Badlion - ClientDetector allows you to disable any mod
  • Lunar Client - ClientDetector allows you to disable any mod (however this ClientControl is currently not working).
  • LabyMod - ClientDetector allows you to disable certain mods and parts of the gui.
  • BetterSprinting - ClientDetector allows you to disable the whole mod, or just parts of it.
  • FiveZig - ClientDetector allows you to disable certain mods.
  • WorldDownloader - ClientDetector allows you to disable the mod entirely.

FORGE Client version:

  • 1.8 ⬄ 1.12.2 - Detect which mods the player is using (not working on 1.13 - 1.18.1 servers).
  • 1.13 ⬄ 1.16.5 - Detect which mods the player is using (not working on 1.8 - 1.12.2 servers).
  • 1.17 ⬄1.18.1 - Detect which mods the player is using, with some limitations (not working on 1.8 - 1.12.2 servers).

DEVELOPER API

clientdetectorapi

de.sportkanone123.clientdetector.spigot.api.ClientDetectorAPI

String getPlayerClient(Player player) Returns the client that the player uses.

List getPlayerMods(Player player) Returns the mods that the player uses.

Map<String, String> getPlayerForgeMods(Player player) Returns the forge mods that the player uses (if no forge mods were detected it returns a empty Map<String, String>

List getPlayerLabymodAddons(Player player) Returns the Labymod addons that the player uses.

Boolean isForgePlayer(Player player) Return true or false depending on if the player uses forge.

Boolean isBedrockPlayer(Player player) Return true or false depending on if the player uses minecraft bedrock.

clientdetectedevent

de.sportkanone123.clientdetector.spigot.api.events.ClientDetectedEvent

Player getPlayer() Returns the player.

String getClient() Returns the name of the client.

moddetectedevent

de.sportkanone123.clientdetector.spigot.api.events.ModDetectedEvent

Player getPlayer() Returns the player.

String getMod() Returns the name of the mod.

forgemodlistdetectedevent

de.sportkanone123.clientdetector.spigot.api.events.ForgeModlistDetectedEvent

Player getPlayer() Returns the player.

ModList getModlist() Returns the forge modlist of the player.

SUPPORT If you have any questions, error(s) and bugs, just join our support Discord, and we will try our best to help you. Discord: https://discord.gg/gwsSTykWbu

If you like our plugin, we would appreciate it, if you would leave a positive review. :)

Information

CategoryAdmin Tools
Published onJuly 5, 2023
LicenseGPL
Downloads2,376
Stars25
Watchers9
Supports Folia

Members