big push
This commit is contained in:
11
EasyBans/.classpath
Normal file
11
EasyBans/.classpath
Normal 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
1
EasyBans/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/bin/
|
||||
17
EasyBans/.project
Normal file
17
EasyBans/.project
Normal 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>
|
||||
11
EasyBans/.settings/org.eclipse.jdt.core.prefs
Normal file
11
EasyBans/.settings/org.eclipse.jdt.core.prefs
Normal 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
14
EasyBans/config.yml
Normal 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
16
EasyBans/plugin.yml
Normal 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.
|
||||
100
EasyBans/src/com/jslightham/easybans/Main.java
Normal file
100
EasyBans/src/com/jslightham/easybans/Main.java
Normal 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
|
||||
}
|
||||
|
||||
}
|
||||
32
EasyBans/src/com/jslightham/easybans/utils/Utils.java
Normal file
32
EasyBans/src/com/jslightham/easybans/utils/Utils.java
Normal 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";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user