commit
03130c7e6d
|
@ -0,0 +1,4 @@
|
|||
.idea/
|
||||
*.iml
|
||||
target/
|
||||
dependency-reduced-pom.xml
|
|
@ -0,0 +1,150 @@
|
|||
|
||||
<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>com.zerohighdef</groupId>
|
||||
<artifactId>GeoffreyMC</artifactId>
|
||||
<!-- Version is used in plugin.yml -->
|
||||
<version>1.0</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<!-- Plugin Information -->
|
||||
<!-- Name, Description, and URL are used in plugin.yml -->
|
||||
<name>GeoffreyMC</name>
|
||||
<description>A plugin for accessing Geoffrey in-game</description>
|
||||
<url>https://geoffrey.zerohighdef.com/</url>
|
||||
|
||||
|
||||
<developers>
|
||||
<developer>
|
||||
<name>ZeroHD</name>
|
||||
<url>https://www.zerohighdef.com</url>
|
||||
</developer>
|
||||
</developers>
|
||||
|
||||
<properties>
|
||||
<!-- Author and MainClass are used in plugin.yml -->
|
||||
<author>ZeroHD</author>
|
||||
<mainClass>com.zerohighdef.geoffrey.GeoffreyMC</mainClass>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>spigot-api</artifactId>
|
||||
<version>1.14.4-R0.1-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-lang</groupId>
|
||||
<artifactId>commons-lang</artifactId>
|
||||
<version>2.6</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>log4j</groupId>
|
||||
<artifactId>log4j</artifactId>
|
||||
<version>1.2.17</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>xyz.etztech</groupId>
|
||||
<artifactId>EtzCore</artifactId>
|
||||
<version>1.0.5</version>
|
||||
</dependency>
|
||||
|
||||
|
||||
</dependencies>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>spigot-repo</id>
|
||||
<url>https://hub.spigotmc.org/nexus/content/groups/public/</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>mvn-repo</id>
|
||||
<url>https://mvnrepository.com/artifact/</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>etztech-repo</id>
|
||||
<url>http://repo.etztech.xyz</url>
|
||||
</repository>
|
||||
<repository> <!-- This repo fixes issues with transitive dependencies -->
|
||||
<id>jcenter</id>
|
||||
<url>http://jcenter.bintray.com</url>
|
||||
</repository>
|
||||
<repository>
|
||||
<id>jitpack.io</id>
|
||||
<url>https://jitpack.io</url>
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<build>
|
||||
<sourceDirectory>src/main/java</sourceDirectory>
|
||||
<defaultGoal>clean install</defaultGoal>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
<!-- Keeping filtering at true here reduces plugin.yml redundancy! -->
|
||||
<filtering>true</filtering>
|
||||
<includes>
|
||||
<include>plugin.yml</include>
|
||||
<include>config.yml</include>
|
||||
</includes>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
<!-- Keep filtering at false for other resources to prevent bad magic -->
|
||||
<filtering>false</filtering>
|
||||
<excludes>
|
||||
<exclude>**/*.java</exclude>
|
||||
<exclude>plugin.yml</exclude>
|
||||
</excludes>
|
||||
</resource>
|
||||
</resources>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>3.1</version>
|
||||
<configuration>
|
||||
<source>1.7</source>
|
||||
<target>1.7</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<!-- Build an executable JAR -->
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<version>3.0.2</version>
|
||||
<configuration>
|
||||
<archive>
|
||||
<manifest>
|
||||
<addClasspath>true</addClasspath>
|
||||
<classpathPrefix>lib/</classpathPrefix>
|
||||
<mainClass>xyz.etztech.minecraftmanager.MinecraftManager</mainClass>
|
||||
</manifest>
|
||||
</archive>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-shade-plugin</artifactId>
|
||||
<version>3.1.1</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>shade</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<configuration>
|
||||
<source>8</source>
|
||||
<target>8</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
|
@ -0,0 +1,64 @@
|
|||
package com.zerohighdef.geoffrey.Commands;
|
||||
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
import com.zerohighdef.geoffrey.GeoffreyMC;
|
||||
import com.zerohighdef.geoffrey.Models.GeoffreyLocation;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import xyz.etztech.core.web.ICallback;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class FindCommand extends GeoffreyCommand {
|
||||
|
||||
public FindCommand(GeoffreyMC plugin) {
|
||||
super(plugin);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
String locationName = args[0];
|
||||
Map <String, String> params = new HashMap<String, String>();
|
||||
|
||||
params.put("search", locationName);
|
||||
RunCommand("find_location", params, new CommandCallback((sender)));
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
protected String formatedCommand(String string) {
|
||||
JsonArray list = new JsonParser().parse(string).getAsJsonArray();
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
|
||||
stringBuilder.append("The following locations match:\n");
|
||||
for (JsonElement element: list) {
|
||||
JsonObject jsonObject = element.getAsJsonObject();
|
||||
GeoffreyLocation geoffreyLocation = new GeoffreyLocation(jsonObject);
|
||||
|
||||
stringBuilder.append(geoffreyLocation.getFormattedLocationString());
|
||||
stringBuilder.append("\n");
|
||||
}
|
||||
|
||||
return stringBuilder.toString();
|
||||
}
|
||||
|
||||
private class CommandCallback implements ICallback {
|
||||
private CommandSender sender;
|
||||
|
||||
CommandCallback(CommandSender sender) {
|
||||
this.sender = sender;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void invoke(String s) {
|
||||
|
||||
String msg = formatedCommand(s);
|
||||
sender.sendMessage(ChatColor.GREEN + msg);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package com.zerohighdef.geoffrey.Commands;
|
||||
|
||||
import com.zerohighdef.geoffrey.GeoffreyMC;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import xyz.etztech.core.web.CoreWeb;
|
||||
import xyz.etztech.core.web.ICallback;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class GeoffreyCommand implements CommandExecutor {
|
||||
private GeoffreyMC plugin;
|
||||
|
||||
public GeoffreyCommand(GeoffreyMC plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
protected void RunCommand(String commandName, Map<String, String> params, ICallback callback) {
|
||||
String url = plugin.getBaseURL() + "/command/" + commandName + "/";
|
||||
params.put("api", plugin.getAPIToken());
|
||||
|
||||
CoreWeb.asyncGetCallback(plugin, url, params, callback);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
package com.zerohighdef.geoffrey;
|
||||
|
||||
import com.zerohighdef.geoffrey.Commands.FindCommand;
|
||||
import org.bukkit.plugin.java.JavaPlugin;
|
||||
|
||||
public final class GeoffreyMC extends JavaPlugin {
|
||||
private String APIToken = "ZIcJJHJTBqkdjAzxqJUmDQfLc";
|
||||
private String BaseURL = "https://test.zerohighdef.com/GeoffreyApp/api";
|
||||
|
||||
@Override
|
||||
public void onEnable() {
|
||||
// Plugin startup logic
|
||||
|
||||
FindCommand findCommand = new FindCommand(this);
|
||||
this.getCommand("find").setExecutor(findCommand);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDisable() {
|
||||
// Plugin shutdown logic
|
||||
}
|
||||
|
||||
public String getAPIToken() {
|
||||
return APIToken;
|
||||
}
|
||||
|
||||
public void setAPIToken(String APIToken) {
|
||||
this.APIToken = APIToken;
|
||||
}
|
||||
|
||||
public String getBaseURL() {
|
||||
return BaseURL;
|
||||
}
|
||||
|
||||
public void setBaseURL(String baseURL) {
|
||||
BaseURL = baseURL;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,73 @@
|
|||
package com.zerohighdef.geoffrey.Models;
|
||||
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
public class GeoffreyLocation {
|
||||
private int xCoord;
|
||||
private int zCoord;
|
||||
private String locationName;
|
||||
private GeoffreyPlayer owner;
|
||||
private String dimension;
|
||||
private String tunnelString = null;
|
||||
|
||||
public GeoffreyLocation(JsonObject locationJSON) {
|
||||
this.xCoord = locationJSON.get("x_coord").getAsInt();
|
||||
this.zCoord = locationJSON.get("z_coord").getAsInt();
|
||||
this.locationName = locationJSON.get("name").getAsString();
|
||||
this.owner = new GeoffreyPlayer(locationJSON.getAsJsonArray("owner").getAsJsonArray().get(0).getAsJsonObject());
|
||||
this.dimension = locationJSON.get("dimension").getAsString();
|
||||
|
||||
JsonElement tunnelElement = locationJSON.get("tunnel");
|
||||
|
||||
if (!tunnelElement.isJsonNull()) {
|
||||
this.tunnelString = tunnelElement.getAsString();
|
||||
}
|
||||
}
|
||||
|
||||
public GeoffreyLocation(int xCoord, int zCoord, String locationName, GeoffreyPlayer owner, String dimension) {
|
||||
this.xCoord = xCoord;
|
||||
this.zCoord = zCoord;
|
||||
this.locationName = locationName;
|
||||
this.owner = owner;
|
||||
this.dimension = dimension;
|
||||
}
|
||||
|
||||
public String getPositionString() {
|
||||
return "(x=" + xCoord + ",z=" + zCoord + ")";
|
||||
}
|
||||
|
||||
public String getFormattedLocationString() {
|
||||
String locationString = locationName + " @ " + getPositionString() + " Owner: " + owner.getUsername();
|
||||
|
||||
if (tunnelString != null) {
|
||||
locationString += " Tunnel: " + tunnelString;
|
||||
}
|
||||
|
||||
return locationString;
|
||||
}
|
||||
|
||||
public int getxCoord() {
|
||||
return xCoord;
|
||||
}
|
||||
|
||||
public int getzCoord() {
|
||||
return zCoord;
|
||||
}
|
||||
|
||||
public String getLocationName() {
|
||||
return locationName;
|
||||
}
|
||||
|
||||
public GeoffreyPlayer getOwner() {
|
||||
return owner;
|
||||
}
|
||||
|
||||
public String getDimension() {
|
||||
return dimension;
|
||||
}
|
||||
|
||||
public String getTunnel() {
|
||||
return tunnelString;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
package com.zerohighdef.geoffrey.Models;
|
||||
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
public class GeoffreyPlayer {
|
||||
private String username;
|
||||
private String mcUUID;
|
||||
|
||||
public GeoffreyPlayer(JsonObject playerJSON) {
|
||||
this.username = playerJSON.get("name").getAsString();
|
||||
this.mcUUID = playerJSON.get("mc_uuid").getAsString();
|
||||
}
|
||||
|
||||
public GeoffreyPlayer(String username, String mcUUID) {
|
||||
this.username = username;
|
||||
this.mcUUID = mcUUID;
|
||||
}
|
||||
|
||||
public String getUsername() {
|
||||
return username;
|
||||
}
|
||||
|
||||
public String getMcUUID() {
|
||||
return mcUUID;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
package com.zerohighdef.geoffrey.Models;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
|
||||
public class GeoffreyTunnel {
|
||||
private String locationName;
|
||||
private String tunnelDirection;
|
||||
private int tunnelNumber;
|
||||
|
||||
public GeoffreyTunnel(JsonObject tunnelJSON) {
|
||||
this.locationName = tunnelJSON.get("location_name").getAsString();
|
||||
this.tunnelDirection = tunnelJSON.get("tunnel_direction").getAsString();
|
||||
this.tunnelNumber = tunnelJSON.get("tunnel_number").getAsInt();
|
||||
}
|
||||
|
||||
public GeoffreyTunnel(String locationName, String tunnelDirection, int tunnelNumber) {
|
||||
this.locationName = locationName;
|
||||
this.tunnelDirection = tunnelDirection;
|
||||
this.tunnelNumber = tunnelNumber;
|
||||
}
|
||||
|
||||
public String getTunnelLocationString() {
|
||||
return tunnelDirection + " " + tunnelNumber;
|
||||
}
|
||||
|
||||
public int getTunnelNumber() {
|
||||
return tunnelNumber;
|
||||
}
|
||||
|
||||
public String getTunnelDirection() {
|
||||
return tunnelDirection;
|
||||
}
|
||||
|
||||
public String getLocationName() {
|
||||
return locationName;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
name: version
|
||||
version: ${version}
|
||||
description: Geoffrey API Plugin for PaperMC
|
||||
main: ${mainClass}
|
||||
|
||||
commands:
|
||||
geoffrey_find:
|
||||
description: Finds a location in Geoffrey
|
||||
aliases: [find, find_location]
|
Loading…
Reference in New Issue