Added README, .gitignore and Project

This commit is contained in:
2017-12-30 03:34:57 +01:00
commit afbeb8fc12
6 changed files with 229 additions and 0 deletions

4
.gitignore vendored Normal file
View File

@@ -0,0 +1,4 @@
target/
.settings/
.classpath
.project

1
README.md Normal file
View File

@@ -0,0 +1 @@
Bukkit Plugin

55
pom.xml Executable file
View File

@@ -0,0 +1,55 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>de.web.basman93</groupId>
<artifactId>KickPlayerOnKick</artifactId>
<packaging>jar</packaging>
<version>1.0.0</version>
<name>KickPlayerOnKick</name>
<url></url>
<build>
<sourceDirectory>${basedir}/src/main/java</sourceDirectory>
<resources>
<resource>
<targetPath>.</targetPath>
<filtering>true</filtering>
<directory>${basedir}/src/main/resources/</directory>
<includes>
<include>plugin.yml</include>
</includes>
</resource>
<resource>
<targetPath>.</targetPath>
<filtering>false</filtering>
<directory>${basedir}/src/main/resources/</directory>
<excludes>
<exclude>plugin.yml</exclude>
</excludes>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spigot-repo</id>
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.bukkit</groupId>
<artifactId>bukkit</artifactId>
<version>1.12.2-R0.1-SNAPSHOT</version><!--change this value depending on the version or use LATEST-->
<type>jar</type>
<scope>provided</scope>
</dependency>
</dependencies>
</project>

View File

@@ -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<String> playerlist = new ArrayList<String>();
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();
}
}

2
src/main/resources/config.yml Executable file
View File

@@ -0,0 +1,2 @@
Check: true
Player: []

45
src/main/resources/plugin.yml Executable file
View File

@@ -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: /<command> <args>
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