This commit is contained in:
jslightham
2020-04-21 10:17:31 -04:00
parent 6ad4bb92e6
commit 05166c347e
223 changed files with 15185 additions and 1262 deletions

11
EasyBans/.classpath Normal file
View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" path="src"/>
<classpathentry kind="lib" path="C:/Users/jmsdesk/Documents/Minecraft Plugins/MC-Plugins/bukkit/spigot-1.13.2.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

1
EasyBans/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/bin/

17
EasyBans/.project Normal file
View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>EasyBans</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View File

@@ -0,0 +1,11 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.8

14
EasyBans/config.yml Normal file
View File

@@ -0,0 +1,14 @@
#Message Sent to Console When Command Cannot Be Run By Console
errorMessage: '&3&bEasyBans &7&l> &4You are unable to execute this command!'
#Message Sent to Player When Missing Permissions
permissionMessage: '&3&bEasyBans &7&l> &4You do not have permission to run this command!'
#Message Sent When Command is Missing Arguments
missingArguments: '&3&bEasyBans &7&l> &4Command Missing Arguments!'
#Ban success message
banSuccess: '&3&bEasyBans &7&l> &aYou successfully banned %player% for %reason%!'
#UnBan success message
unbanSuccess: '&3&bEasyBans &7&l> &aYou successfully unbanned %player%!'

16
EasyBans/plugin.yml Normal file
View File

@@ -0,0 +1,16 @@
name: EasyBans
version: 1.0.0
main: com.jslightham.easybans.Main
description: A simple ban plugin, with a web dashboard.
author: jslightham
commands:
ban:
usage: /<command> <player> <message>
description: Ban a player.
unban:
usage: /<command> <player>
description: UnBan a player.
ebinfo:
usage: /<command> <player>
description: Check a player's punishment status.

View File

@@ -0,0 +1,100 @@
package com.jslightham.easybans;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerLoginEvent;
import org.bukkit.plugin.java.JavaPlugin;
import com.jslightham.easybans.utils.Utils;
public class Main extends JavaPlugin implements Listener {
@Override
public void onEnable() {
Bukkit.getServer().getPluginManager().registerEvents(this, this);
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
if (args.length < 1) {
sender.sendMessage(Utils.chat(this.getConfig().getString("missingArguments")));
return true;
}
String name, UUID;
if (args[0].matches("[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}")) {
UUID = args[0];
name = Bukkit.getPlayer(UUID).getName();
} else {
name = args[0];
UUID = Bukkit.getPlayer(name).getUniqueId().toString();
}
sender.sendMessage("Name: " + name + " UUID: " + UUID);
if (cmd.getName().equalsIgnoreCase("ban")) {
// TODO: Push the UUID, ban reason, and time to the Web API
String msg = "";
for (int i = 1; i < args.length; i++) {
msg += args[i] + " ";
}
String successMsg = "";
if (getConfig().getString("banSuccess").indexOf("%player%") < getConfig().getString("banSuccess")
.indexOf("%reason%")) {
successMsg += getConfig().getString("banSuccess").substring(0,
getConfig().getString("banSuccess").indexOf("%player%"));
successMsg += name;
successMsg += getConfig().getString("banSuccess").substring(
getConfig().getString("banSuccess").indexOf("%player%") + 8,
getConfig().getString("banSuccess").indexOf("%reason%"));
successMsg += msg;
successMsg += getConfig().getString("banSuccess")
.substring(getConfig().getString("banSuccess").indexOf("%reason%") + 8);
} else {
successMsg += getConfig().getString("banSuccess").substring(0,
getConfig().getString("banSuccess").indexOf("%reason%"));
successMsg += name;
successMsg += getConfig().getString("banSuccess").substring(
getConfig().getString("banSuccess").indexOf("%reason%") + 8,
getConfig().getString("banSuccess").indexOf("%player%"));
successMsg += msg;
successMsg += getConfig().getString("banSuccess")
.substring(getConfig().getString("banSuccess").indexOf("%player%") + 8);
}
sender.sendMessage(Utils.chat(successMsg));
Player t = Bukkit.getServer().getPlayer(name);
if(t != null) {
t.kickPlayer(msg);
}
} else if (cmd.getName().equalsIgnoreCase("unban")) {
// TODO: Push the UUID, ban reason, and time to the Web API
String successMsg = "";
successMsg += getConfig().getString("unbanSuccess").substring(0,
getConfig().getString("banSuccess").indexOf("%player%"));
successMsg += name;
successMsg += getConfig().getString("unbanSuccess")
.substring(getConfig().getString("unbanSuccess").indexOf("%player%") + 8);
sender.sendMessage(successMsg);
} else if (cmd.getName().equalsIgnoreCase("ebinfo")) {
// TODO: Send request to web api to read data
}
return true;
}
@EventHandler
public void onPlayerLogin(PlayerLoginEvent e) {
//ToDo: Send a request to the web api to see if the player is banned and why
}
}

View File

@@ -0,0 +1,32 @@
package com.jslightham.easybans.utils;
import java.io.IOException;
import java.net.URL;
import org.apache.commons.io.IOUtils;
import org.bukkit.ChatColor;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.JSONValue;
public class Utils {
public static String chat (String s) {
return ChatColor.translateAlternateColorCodes('&', s);
}
public static String getName(String uuid) throws org.json.simple.parser.ParseException {
String url = "https://api.mojang.com/user/profiles/"+uuid.replace("-", "")+"/names";
try {
@SuppressWarnings("deprecation")
String nameJson = IOUtils.toString(new URL(url));
JSONArray nameValue = (JSONArray) JSONValue.parseWithException(nameJson);
String playerSlot = nameValue.get(nameValue.size()-1).toString();
JSONObject nameObject = (JSONObject) JSONValue.parseWithException(playerSlot);
return nameObject.get("name").toString();
} catch (IOException e) {
e.printStackTrace();
}
return "error";
}
}