✨ AdminSecurity | Authentication via mod! ✨
v1.0.6 (1.8-1.21.4)⚠︎ Admin characters cannot connect! ⚠︎
FUNCTIONS:
- WHEN YOU INSTALL THE MOD, IT GENERATES A TOKEN THAT IS USED FOR VERIFICATION AND IS UNIQUE, ENSURING THAT IT CANNOT BE FORGED.
- IF SOMEONE ELSE CONNECTS USING THE MOD, A DIFFERENT TOKEN IS SENT, AND THE CONNECTION IS TERMINATED.
- THIS TOKEN IS STORED ON THE SERVER FOR SECURITY PURPOSES AND IS CONTINUOUSLY VERIFIED.
- IF THE MOD IS NOT PRESENT, THE PLAYER IS ALSO KICKED.
- HOWEVER, THIS ONLY APPLIES TO PLAYERS WHO HAVE PREVIOUSLY USED THE MOD.
- PLAYERS WHO HAVE CONNECTED WITHOUT THE MOD SO FAR ARE NOT REQUIRED TO USE IT.
- THE PLUGIN HANDLES THE AUTHENTICATION AND DISCONNECTION ON THE SERVER SIDE!


API:
- Player user = UserdataAPI.getUser(String code); - Rᴇᴛʀɪᴇᴠɪɴɢ ᴛʜᴇ ᴘʟᴀʏᴇʀ ғʀᴏᴍ ᴛʜᴇ ᴄᴏᴅᴇ!
- String username = UserdataAPI.getUsername(String code); - Rᴇᴛʀɪᴇᴠɪɴɢ ᴛʜᴇ ᴜsᴇʀɴᴀᴍᴇ ғʀᴏᴍ ᴛʜᴇ ᴄᴏᴅᴇ!
- UUID uuid = UserdataAPI.getUuid(String code); - Rᴇᴛʀɪᴇᴠɪɴɢ ᴛʜᴇ ᴜᴜɪᴅ ғʀᴏᴍ ᴛʜᴇ ᴄᴏᴅᴇ!
- String code = UserdataAPI.getCode(String username); - Rᴇᴛʀɪᴇᴠɪɴɢ ᴛʜᴇ ᴄᴏᴅᴇ ғʀᴏᴍ ᴛʜᴇ ᴜsᴇʀɴᴀᴍᴇ!
- String code = UserdataAPI.getCode(UUID uuid); - Rᴇᴛʀɪᴇᴠɪɴɢ ᴛʜᴇ ᴄᴏᴅᴇ ғʀᴏᴍ ᴛʜᴇ ᴜᴜɪᴅ!
EVENTS:
package hu.emanuel2004.adminsecurity;
import java.util.UUID;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import hu.emanuel2004.adminsecurity.events.ModDetectedEvent;
import hu.emanuel2004.adminsecurity.events.ModRequestEvent;
public class TestListeners implements Listener {
@EventHandler
public void onRequest(ModRequestEvent event) {
// PLAYER REQUEST!
Player user = event.getUser();
// PLAYER CODE REQUEST!
String code = event.getCode();
// THE PLAYER RETRIEVED FROM THE CONFIG BY THE CODE! CHECK IT, BECAUSE IT CAN RETURN NULL IF THE PLAYER IS NOT ONLINE OR NOT IN THE CONFIG!
Player confUser = event.getUserConf();
if (confUser != null) {
}
// THE USERNAME RETRIEVED FROM THE CONFIG BY THE CODE! CHECK IT, BECAUSE IT CAN RETURN NULL IF IT'S NOT IN THE CONFIG!
String confUsername = event.getUsernameConf();
if (confUsername != null) {
}
// THE UUID RETRIEVED FROM THE CONFIG BY THE CODE! CHECK IT, BECAUSE IT CAN RETURN NULL IF IT'S NOT IN THE CONFIG!
UUID confUuid = event.getUuidConf();
if (confUuid != null) {
}
// WITH THIS, YOU CAN DISABLE THE CONTINUATION OF THE EVENT AND INTERRUPT CERTAIN CHECKS OF ADMINSECURITY IF NECESSARY!
if (!event.isCancelled()) {
event.setCancelled(true);
}
}
@EventHandler
public void onDetected(ModDetectedEvent event) {
// PLAYER REQUEST!
Player user = event.getUser();
// WITH THIS, YOU CAN CHECK IF THE PLAYER IS USING A MOD, BUT IT MAY RETURN A FALSE VALUE IF THE CLIENT DIDN'T RESPOND IN TIME!
boolean detected = event.isDetectedMod();
if (detected) {
}
// WITH THIS, YOU CAN DISABLE THE CONTINUATION OF THE EVENT AND INTERRUPT CERTAIN CHECKS OF ADMINSECURITY IF NECESSARY!
if (!event.isCancelled()) {
event.setCancelled(true);
}
}
}
List-of-commands: |-
&7List of commands!
&f&l✦ &e/adminsecurity blacklist &6<code>
&f&l✦ &e/adminsecurity unblacklist &6<code>
Blacklist-help: '&b/adminsecurity blacklist <code> &8- &fAdd code to the blacklist!'
Unblacklist-help: '&b/adminsecurity unblacklist <code> &8- &fRemoved code from the blacklist!'
Invalid-code-format: '&cError! &cInvalid code format!'
This-code-does-not-exist: '&cError! &cThis code does not exist!'
This-code-is-not-blacklisted: '&cError! &cThis code is not blacklisted!'
This-code-is-blacklisted: '&cError! &cThis code is blacklisted!'
You-entered-the-command-incorrectly: '&cError! &cYou entered the command incorrectly!'
The-code-has-been-added-to-the-blacklist: '&8[&cAS&8] &8» §aThe code &2%code% &ahas been added to the blacklist!'
The-code-has-been-removed-from-the-blacklist: '&8[&cAS&8] &8» §aThe code &2%code% &ahas been removed from the blacklist!'
Same-username-is-on-the-server: '&bSame username is on the server: &3%username%'
Same-UUID-is-on-the-server: '&bSame UUID is on the server: &3%uuid%'
Name-case-conflict-detected: '&bName case conflict detected: &3%username%'
Authentication-failed: '&bAuthentication failed!'
UUID-cannot-be-null: '&bUUID cannot be null!'
UUID-authentication-failed: '&bUUID authentication failed!'
Someone-else-has-connected-with-this-code: '&bSomeone else has connected with this code!'
You-have-sent-data-to-the-server-too-often: '&bYou have sent data to the server too often!'
The-UUID-is-blacklisted: '&bThe UUID is blacklisted!'
CHECK-ONLINE:
USERNAME: true # CHECKS IF THE USERNAME IS ALREADY IN USE ON THE SERVER!
UUID: true # CHECKS IF THE UUID IS ALREADY IN USE ON THE SERVER!
NAME-CASE: true # CHECKS FOR CASE SENSITIVITY IN THE NAME!
MOD-CHECKER:
ONLY-MOD: false # ONLY PLAYERS USING THE MOD CAN JOIN THE SERVER!
TIME: 3 # DATA ARRIVAL COUNTED FROM PLAYERJOINEVENT!
SEND-LIMITER:
SEND-LIMIT: 3 # MAXIMUM NUMBER OF CODE SENDS PER MOD!
BLOCK-TIME: 10 # HOW MANY SECONDS THE MOD CANNOT SEND DATA!
AUTO-LOGIN:
AUTH-ME: false # AUTH ME PLUGIN AUTOMATICALLY LOGS YOU IN IF YOU USE A MOD!
NLOGIN: false # NLOGIN PLUGIN AUTOMATICALLY LOGS YOU IN IF YOU USE A MOD!
Custom-kick: |-
&r &r
&8【&c✽&8】 &eYou have been kicked from the server! &8【&c✽&8】
&r &r
&b%reason%
&r &r
&7Join our discord if there's an issue!
&7&o(https://discord.io/chroncode/)
&r &r
usernames: {}
uuids: {}
blacklisted: []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