commit dc93779fd0b8bfd5d77b3df7726bb7a469f17949 Author: Etzelia Date: Thu Sep 13 22:34:28 2018 -0500 Initial commit for Gitea diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3d13e3f --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.idea/ +*.iml +target/ +dependency-reduced-pom.xml \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..3fd8f68 --- /dev/null +++ b/pom.xml @@ -0,0 +1,55 @@ + + + 4.0.0 + + xyz.etztech + EtzCore + 1.0 + + + + org.apache.maven.plugins + maven-compiler-plugin + + 8 + 8 + + + + + + + + org.spigotmc + spigot-api + 1.13.1-R0.1-SNAPSHOT + + + org.apache.httpcomponents + httpclient + 4.5.5 + + + + + + spigot-repo + https://hub.spigotmc.org/nexus/content/groups/public/ + + + mvn-repo + https://mvnrepository.com/artifact/ + + + jcenter + http://jcenter.bintray.com + + + jitpack.io + https://jitpack.io + + + + \ No newline at end of file diff --git a/src/main/java/xyz/etztech/core/CoreUtils.java b/src/main/java/xyz/etztech/core/CoreUtils.java new file mode 100644 index 0000000..3257006 --- /dev/null +++ b/src/main/java/xyz/etztech/core/CoreUtils.java @@ -0,0 +1,13 @@ +package xyz.etztech.core; + +import org.bukkit.Bukkit; +import org.bukkit.scheduler.BukkitScheduler; + +import java.util.logging.Logger; + +public class CoreUtils { + + private static final BukkitScheduler schedule = Bukkit.getScheduler(); + private static final Logger logger = Logger.getLogger("Minecraft"); + +} diff --git a/src/main/java/xyz/etztech/core/api/IMinecraftManager.java b/src/main/java/xyz/etztech/core/api/IMinecraftManager.java new file mode 100644 index 0000000..81928b0 --- /dev/null +++ b/src/main/java/xyz/etztech/core/api/IMinecraftManager.java @@ -0,0 +1,11 @@ +package xyz.etztech.core.api; + +import org.bukkit.entity.Player; + +public interface IMinecraftManager { + + void logOverride(boolean override); + + void globalLog(Player player, String message); + +} diff --git a/src/main/java/xyz/etztech/core/web/CoreResponse.java b/src/main/java/xyz/etztech/core/web/CoreResponse.java new file mode 100644 index 0000000..670e0b1 --- /dev/null +++ b/src/main/java/xyz/etztech/core/web/CoreResponse.java @@ -0,0 +1,66 @@ +package xyz.etztech.core.web; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import org.bukkit.ChatColor; + +import java.util.logging.Logger; + +public class CoreResponse { + + protected JsonObject json; + private Boolean status; + private String message; + + private static Logger log = Logger.getLogger("Minecraft"); + + public CoreResponse(JsonArray httpResponse) { + json = httpResponse.get(0).getAsJsonObject(); + setStatus(json.get("status").getAsBoolean()); + setMessage(json.get("message").getAsString()); + } + + public CoreResponse(JsonObject httpResponse) { + json = httpResponse; + setStatus(httpResponse.get("status").getAsBoolean()); + setMessage(httpResponse.get("message").getAsString()); + } + + public CoreResponse(String rawReponse) { + JsonParser parser = new JsonParser(); + try { + json = (JsonObject) parser.parse(rawReponse); + setStatus(json.get("status").getAsBoolean()); + setMessage(json.get("message").getAsString()); + } catch (Exception ex) { + log.warning("Could not parse JSON result"); + } + } + + public Boolean getStatus() { + return status; + } + + public void setStatus(Boolean status) { + this.status = status; + } + + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + + public String getMCMessage() { + if (status) { + return ChatColor.GREEN + message; + } else { + return ChatColor.RED + message; + } + } +} diff --git a/src/main/java/xyz/etztech/core/web/CoreWeb.java b/src/main/java/xyz/etztech/core/web/CoreWeb.java new file mode 100644 index 0000000..1917c20 --- /dev/null +++ b/src/main/java/xyz/etztech/core/web/CoreWeb.java @@ -0,0 +1,122 @@ +package xyz.etztech.core.web; + +import org.apache.commons.lang.StringUtils; +import org.apache.http.HttpEntity; +import org.apache.http.HttpResponse; +import org.apache.http.NameValuePair; +import org.apache.http.client.HttpClient; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.message.BasicNameValuePair; +import org.bukkit.Bukkit; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.bukkit.plugin.Plugin; +import org.bukkit.scheduler.BukkitScheduler; + +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.logging.Logger; + +public class CoreWeb { + + private static final BukkitScheduler schedule = Bukkit.getScheduler(); + private static final Logger logger = Logger.getLogger("Minecraft"); + + public static void asyncGet(final Plugin plugin, final String url, final Map data) { + schedule.runTaskAsynchronously(plugin, () -> { + ArrayList query = new ArrayList<>(); + for (String key : data.keySet()) { + query.add(key + "=" + data.get(key)); + } + String dataQuery = StringUtils.join(query, "&"); + try { + HttpClient client = HttpClients.createDefault(); + HttpGet get = new HttpGet(url + "?" + dataQuery); + client.execute(get); + } catch (Exception ex) { + logger.warning("GET request failed. (" + url + ")"); + } + }); + } + + public static void asyncGetCallback(final Plugin plugin, final String url, final Map data, final ICallback callback) { + schedule.runTaskAsynchronously(plugin, () -> { + StringBuilder result = new StringBuilder(); + ArrayList query = new ArrayList<>(); + for (String key : data.keySet()) { + query.add(key + "=" + data.get(key)); + } + String dataQuery = StringUtils.join(query, "&"); + try { + HttpClient client = HttpClients.createDefault(); + HttpGet get = new HttpGet(url + "?" + dataQuery); + HttpResponse response = client.execute(get); + HttpEntity entity = response.getEntity(); + + InputStream input = entity.getContent(); + BufferedReader in = new BufferedReader(new InputStreamReader(input)); + String inputLine; + while ((inputLine = in.readLine()) != null) { + result.append(inputLine); + } + input.close(); + } catch (Exception ex) { + logger.warning("GET request failed. (" + url + ")"); + } + callback.invoke(result.toString()); + }); + } + + public static void asyncPost(final Plugin plugin, final String url, final Map data) { + schedule.runTaskAsynchronously(plugin, () -> { + try { + HttpClient client = HttpClients.createDefault(); + HttpPost post = new HttpPost(url); + List params = new ArrayList<>(); + for (String key : data.keySet()) { + params.add(new BasicNameValuePair(key, data.get(key))); + } + post.setEntity(new UrlEncodedFormEntity(params, "UTF-8")); + client.execute(post); + } catch (Exception ex) { + logger.warning("POST request failed. (" + url + ")"); + } + }); + } + + public static void asyncPostCallback(final Plugin plugin, final String url, final Map data, final ICallback callback) { + schedule.runTaskAsynchronously(plugin, () -> { + StringBuilder result = new StringBuilder(); + try { + HttpClient client = HttpClients.createDefault(); + HttpPost post = new HttpPost(url); + List params = new ArrayList<>(); + for (String key : data.keySet()) { + params.add(new BasicNameValuePair(key, data.get(key))); + } + post.setEntity(new UrlEncodedFormEntity(params, "UTF-8")); + HttpResponse response = client.execute(post); + HttpEntity entity = response.getEntity(); + + InputStream input = entity.getContent(); + BufferedReader in = new BufferedReader(new InputStreamReader(input)); + String inputLine; + while ((inputLine = in.readLine()) != null) { + result.append(inputLine); + } + input.close(); + } catch (Exception ex) { + logger.warning("POST request failed. (" + url + ")"); + } + callback.invoke(result.toString()); + }); + } +} diff --git a/src/main/java/xyz/etztech/core/web/ICallback.java b/src/main/java/xyz/etztech/core/web/ICallback.java new file mode 100644 index 0000000..a1da705 --- /dev/null +++ b/src/main/java/xyz/etztech/core/web/ICallback.java @@ -0,0 +1,7 @@ +package xyz.etztech.core.web; + +public interface ICallback { + + void invoke(String httpResponse); + +}