1 Commits

Author SHA1 Message Date
5107ec0796 Added new Option for blacklist and added API version to plugin.yml 2022-02-20 22:09:34 +01:00
4 changed files with 291 additions and 226 deletions

View File

@@ -3,7 +3,7 @@
<groupId>de.web.basman93</groupId>
<artifactId>KickPlayerOnJoin</artifactId>
<packaging>jar</packaging>
<version>1.0.3</version>
<version>1.0.4</version>
<name>KickPlayerOnJoin</name>
<url></url>
<build>
@@ -48,7 +48,7 @@
<dependency>
<groupId>org.spigotmc</groupId>
<artifactId>spigot-api</artifactId>
<version>1.16.4-R0.1-SNAPSHOT</version><!--change this value depending on the version or use LATEST-->
<version>1.18.1-R0.1-SNAPSHOT</version><!--change this value depending on the version or use LATEST-->
<type>jar</type>
<scope>provided</scope>
</dependency>

View File

@@ -2,6 +2,7 @@ package de.web.basman93;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
@@ -17,6 +18,8 @@ import org.bukkit.plugin.java.JavaPlugin;
public class KickPlayerOnJoin extends JavaPlugin implements Listener {
private boolean active = true;
private boolean blacklist = false;
private int config_version = 0;
private FileConfiguration config = getConfig();
private List<String> playerlist = new ArrayList<String>();
private final String prefix = ChatColor.GRAY + "[K" + ChatColor.DARK_GRAY + "P" + ChatColor.GRAY + "OJ] ";
@@ -46,6 +49,7 @@ public class KickPlayerOnJoin extends JavaPlugin implements Listener {
sender.sendMessage(prefix + "/kpoj del <player> - removes player from whitelist");
sender.sendMessage(prefix + "/kpoj reload - reload plugin");
sender.sendMessage(prefix + "/kpoj list - list players on whitelist");
sender.sendMessage(prefix + "/kpoj mode <mode> - Change the mode of the plugin (whitelist|blacklist)");
sender.sendMessage(prefix + "--------------------------------------------------");
} else if(args.length > 0 && args[0].equalsIgnoreCase("version")) {
@@ -54,41 +58,72 @@ public class KickPlayerOnJoin extends JavaPlugin implements Listener {
} else if(args.length > 1 && args[0].equalsIgnoreCase("add") && cop(sender, "kpoj.add")) {
for(int i = 1; i < args.length; i++) {
if(playerlist.contains(args[i])) {
sender.sendMessage(prefix + args[i] + " is already in the whitelist!");
sender.sendMessage(prefix + args[i] + " is already in the " + (blacklist ? "blacklist" : "whitelist") + "!");
} else {
playerlist.add(args[i]);
sender.sendMessage(prefix + args[i] + " add to whitelist!");
sender.sendMessage(prefix + args[i] + " add to " + (blacklist ? "blacklist" : "whitelist") + "!");
save();
}
}
save();
} else if(args.length > 1 && args[0].equalsIgnoreCase("del") && cop(sender, "kpoj.del")) {
for(int i = 1; i < args.length; i++) {
if(playerlist.contains(args[i])) {
playerlist.remove(args[i]);
sender.sendMessage(prefix + args[i] + " removed from the whitelist!");
sender.sendMessage(prefix + args[i] + " removed from the " + (blacklist ? "blacklist" : "whitelist") + "!");
save();
} else {
sender.sendMessage(prefix + args[i] + " is not in the whitelist!");
sender.sendMessage(prefix + args[i] + " is not in the " + (blacklist ? "blacklist" : "whitelist") + "!");
}
}
save();
} else if(args.length > 0 && args[0].equalsIgnoreCase("reload") && cop(sender, "kpoj.reload")) {
reloadConfig();
config = getConfig();
playerlist = config.getStringList("Player");
active = config.getBoolean("Check");
blacklist = config.getBoolean("Blacklist");
config_version = config.getInt("Version");
sender.sendMessage(prefix + "Config reloaded!");
} else if(args.length > 0 && args[0].equalsIgnoreCase("list") && cop(sender, "kpoj.list")) {
sender.sendMessage(prefix + "Players: " + String.join(", ", playerlist));
} else if(args.length > 1 && args[0].equalsIgnoreCase("mode") && cop(sender, "kpoj.listmode")) {
if(args[1].matches("w|white|whitelist")) {
if(blacklist) {
blacklist = false;
sender.sendMessage(prefix + "Changed to mode: whitelist");
save();
}
else
sender.sendMessage(prefix + "Mode already whitelist");
} else if(args[1].matches("b|black|blacklist")) {
if(!blacklist) {
blacklist = true;
sender.sendMessage(prefix + "Changed to mode: blacklist");
save();
}
else
sender.sendMessage(prefix + "Mode already blacklist");
}
} else {
sender.sendMessage(prefix + "Version: " + getDescription().getVersion());
if(cop(sender, "kpoj.info"))
if(cop(sender, "kpoj.info")) {
sender.sendMessage(prefix + "Active: " + (active ? ChatColor.GREEN + "yes" : ChatColor.RED + "no"));
if(sender.hasPermission("kpoj.info") && sender instanceof Player)
sender.sendMessage(prefix + "Status: " + (playerlist.contains(sender.getName()) ? ChatColor.GREEN + "Allowed" : ChatColor.RED + "Disallowed"));
sender.sendMessage(prefix + "Mode: " + (blacklist ? ChatColor.GRAY + "blacklist" : ChatColor.WHITE + "whitelist"));
}
if(sender.hasPermission("kpoj.info") && sender instanceof Player) {
if(blacklist)
sender.sendMessage(prefix + "Status: " + (playerlist.contains(sender.getName()) ? ChatColor.RED + "Disallowed" : ChatColor.GREEN + "Allowed"));
else
sender.sendMessage(prefix + "Status: " + (playerlist.contains(sender.getName()) ? ChatColor.GREEN + "Allowed" : ChatColor.RED + "Disallowed"));
}
}
return true;
}
@@ -101,25 +136,46 @@ public class KickPlayerOnJoin extends JavaPlugin implements Listener {
playerlist = config.getStringList("Player");
active = config.getBoolean("Check");
blacklist = config.getBoolean("Blacklist", false);
config_version = config.getInt("Version", 1);
if(config_version == 1) {
getLogger().log(Level.INFO, "Update config from version " + config_version + " to version 2");
config_version = 2;
save();
}
getServer().getPluginManager().registerEvents(this, this);
}
@EventHandler
public void onPlayerLogin(PlayerLoginEvent event) {
if(!playerlist.contains(event.getPlayer().getName()) && active) {
event.disallow(Result.KICK_WHITELIST, "You are not white-listed on this server!");
getServer().broadcastMessage(event.getPlayer().getName() + " tried to join.");
}
}
public void onPlayerLogin(PlayerLoginEvent event) {
if(active && !event.getPlayer().isOp()) {
if(blacklist && playerlist.contains(event.getPlayer().getName())) {
event.disallow(Result.KICK_WHITELIST, "You are black-listed on this server!");
getServer().broadcastMessage(event.getPlayer().getName() + " tried to join.");
getLogger().log(Level.INFO, event.getPlayer().getName() + " tried to join but is on the blacklist");
getLogger().log(Level.INFO, "Stopped player " + event.getPlayer().getName() + " from joining");
private boolean cop(CommandSender sender, String perm) {
return sender.hasPermission(perm) || !(sender instanceof Player);
}
} else if(!blacklist && !playerlist.contains(event.getPlayer().getName())) {
event.disallow(Result.KICK_WHITELIST, "You are not white-listed on this server!");
getServer().broadcastMessage(event.getPlayer().getName() + " tried to join.");
getLogger().log(Level.INFO, event.getPlayer().getName() + " tried to join but is not on the whitelist");
getLogger().log(Level.INFO, "Stopped player " + event.getPlayer().getName() + " from joining");
private void save() {
config.set("Check", active);
config.set("Player", playerlist);
}
}
}
private boolean cop(CommandSender sender, String perm) {
return sender.hasPermission(perm) || !(sender instanceof Player);
}
private void save() {
config.set("Check", active);
config.set("Player", playerlist);
config.set("Blacklist", blacklist);
config.set("Version", config_version);
saveConfig();
}
}
}

View File

@@ -1,2 +1,4 @@
Version: 2
Check: true
Blacklist: false
Player: []

View File

@@ -3,6 +3,9 @@ main: de.web.basman93.KickPlayerOnJoin
version: "${project.version}"
description: A plugin to kick not whitelisted player
author: basman93
api-version: 1.18
website: https://gitlab.com/basman93/KickPlayerOnJoin
prefix: KPOJ
commands:
kickplayeronjoin:
@@ -12,7 +15,7 @@ commands:
permissions:
kpoj.*:
default: false
default: op
description: Gives access to all KickPlayerOnJoin commands
children:
kpoj.mode: true
@@ -22,6 +25,7 @@ permissions:
kpoj.del: true
kpoj.reload: true
kpoj.list: true
kpoj.listmode: true
kpoj.mode:
default: false
description: Allows to activate or deactivate this plugin
@@ -43,3 +47,6 @@ permissions:
kpoj.list:
default: false
description: list all added player
kpoj.listmode:
default: false
description: Change mode of the plugin (blacklist/whitelist)