commit afbeb8fc124e61b6144a9a486a8608c5f9a7df94 Author: basman93 Date: Sat Dec 30 03:34:57 2017 +0100 Added README, .gitignore and Project diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..520e0b1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +target/ +.settings/ +.classpath +.project diff --git a/README.md b/README.md new file mode 100644 index 0000000..95c1948 --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +Bukkit Plugin diff --git a/pom.xml b/pom.xml new file mode 100755 index 0000000..7447326 --- /dev/null +++ b/pom.xml @@ -0,0 +1,55 @@ + + 4.0.0 + de.web.basman93 + KickPlayerOnKick + jar + 1.0.0 + KickPlayerOnKick + + + ${basedir}/src/main/java + + + . + true + ${basedir}/src/main/resources/ + + plugin.yml + + + + . + false + ${basedir}/src/main/resources/ + + plugin.yml + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.8 + 1.8 + + + + + + + spigot-repo + https://hub.spigotmc.org/nexus/content/repositories/snapshots/ + + + + + org.bukkit + bukkit + 1.12.2-R0.1-SNAPSHOT + jar + provided + + + \ No newline at end of file diff --git a/src/main/java/de/web/basman93/kickplayeronjoin/KickPlayerOnJoin.java b/src/main/java/de/web/basman93/kickplayeronjoin/KickPlayerOnJoin.java new file mode 100755 index 0000000..312afc5 --- /dev/null +++ b/src/main/java/de/web/basman93/kickplayeronjoin/KickPlayerOnJoin.java @@ -0,0 +1,122 @@ +package de.web.basman93.kickplayeronjoin; + +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.Color; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerLoginEvent; +import org.bukkit.event.player.PlayerLoginEvent.Result; +import org.bukkit.plugin.java.JavaPlugin; + +public class KickPlayerOnJoin extends JavaPlugin implements Listener { + + private boolean active = true; + private FileConfiguration config = getConfig(); + private List playerlist = new ArrayList(); + private final String prefix = Color.SILVER + "[K" + Color.GRAY + "P" + Color.SILVER + "OJ] "; + + @Override + public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { + if(command.getName().equalsIgnoreCase("kickplayeronjoin")) { + + if(args.length > 0 && args[0].equalsIgnoreCase("on") && cop(sender, "kpoj.mode")) { + sender.sendMessage(prefix + "activated"); + active = true; + save(); + + } else if(args.length > 0 && args[0].equalsIgnoreCase("off") && cop(sender, "kpoj.mode")) { + sender.sendMessage(prefix + "deactivated"); + active = false; + save(); + + } else if(args.length > 0 && args[0].equalsIgnoreCase("help") && cop(sender, "kpoj.help")) { + sender.sendMessage(prefix + "--------------- HELP ---------------"); + sender.sendMessage(prefix + "/kpoj - shows version & status"); + sender.sendMessage(prefix + "/kpoj help - shows this help info"); + sender.sendMessage(prefix + "/kpoj off - deactivate this plugin"); + sender.sendMessage(prefix + "/kpoj on - activate this plugin"); + sender.sendMessage(prefix + "------------------------------------"); + + } 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!"); + } else { + playerlist.add(args[i]); + sender.sendMessage(prefix + args[i] + " add to whitelist!"); + } + } + 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!"); + } else { + sender.sendMessage(prefix + args[i] + " is not in the 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"); + + } else if(args.length > 0 && args[0].equalsIgnoreCase("list") && cop(sender, "kpoj.list")) { + String buffer = playerlist.isEmpty() ? "" : playerlist.get(0); + for(int i = 1; i < playerlist.size(); i++) { + buffer += ", " + playerlist.get(i); + } + sender.sendMessage(prefix + "Players: " + buffer); + + } else { + sender.sendMessage(prefix + "Version: " + getDescription().getVersion()); + if(cop(sender, "kpoj.info")) + sender.sendMessage(prefix + "Active: " + (active ? Color.GREEN + "yes" : Color.RED + "no")); + if(sender.hasPermission("kpoj.info") && sender instanceof Player) + sender.sendMessage(prefix + "Status: " + (playerlist.contains(sender.getName()) ? Color.GREEN + "Allowed" : Color.RED + "Disallowed")); + } + return true; + } + return false; + } + + @Override + public void onEnable() { + saveDefaultConfig(); + + playerlist = config.getStringList("Player"); + active = config.getBoolean("Check"); + + 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 whitelisted on this server!"); + getServer().broadcastMessage(event.getPlayer().getName()); + } + } + + 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); + saveConfig(); + } +} diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml new file mode 100755 index 0000000..4826700 --- /dev/null +++ b/src/main/resources/config.yml @@ -0,0 +1,2 @@ +Check: true +Player: [] \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml new file mode 100755 index 0000000..8306ed7 --- /dev/null +++ b/src/main/resources/plugin.yml @@ -0,0 +1,45 @@ +name: KickPlayerOnJoin +main: de.web.basman93.KickPlayerOnJoin +version: "${project.version}" +description: A plugin to kick not whitelisted player +author: basman93 + +commands: + kickplayeronjoin: + description: Main Command + usage: / + aliases: [kpoj] + +permissions: + kpoj.*: + default: false + description: Gives access to all KickPlayerOnJoin commands + children: + kpoj.mode: true + kpoj.help: true + kpoj.info: true + kpoj.add: true + kpoj.del: true + kpoj.reload: true + kpoj.list: true + kpoj.mode: + default: false + description: Allows to activate or deactivate this plugin + kpoj.help: + default: false + description: Shows help information + kpoj.info: + default: false + description: Shows extra information + kpoj.add: + default: false + description: Adds player to the whitelist + kpoj.del: + default: false + description: Remove player from the whitelist + kpoj.reload: + default: false + description: reload the config file + kpoj.list: + default: false + description: list all added player