diff --git a/.gitignore b/.gitignore index ffcb83e..9264b42 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,9 @@ *.class -.* -!.github +.gradle +.idea /build/ /target/ +*/build/ # Package Files # *.war diff --git a/.versionrc.js b/.versionrc.js new file mode 100644 index 0000000..5eed5eb --- /dev/null +++ b/.versionrc.js @@ -0,0 +1,51 @@ +let versionRegex = /(\nversion:\s)([0-9.-]+)/; +let velocityVersionRegex = /(\sversion\s=\s")([0-9.-]+)("\))/; + + +const ymlUpdater = { + updater: { + 'readVersion': (contents) => { + return versionRegex.exec(contents)[2]; + }, + 'writeVersion': (contents, version) => { + return contents.replace(versionRegex, `$1${version}`); + } + } +} + +const bungee = { + filename: 'src/main/resources/bungee.yml', + ...ymlUpdater, +} + +const plugin = { + filename: 'src/main/resources/plugin.yml', + ...ymlUpdater, +} + +const velocity_plugin = { + filename: 'src/main/java/com/sekwah/advancedportals/velocity/AdvancedPortalsPlugin.java', + updater: { + 'readVersion': (contents) => { + return velocityVersionRegex.exec(contents)[2]; + }, + 'writeVersion': (contents, version) => { + return contents.replace(velocityVersionRegex, `$1${version}$3`); + } + } +} + +const files = [plugin, velocity_plugin, bungee]; + +module.exports = { + bumpFiles: files, + packageFiles: files, + // In case you need to force a version change (mostly due to change of scope of the update e.g. major now instead of patch) + //releaseAs: '1.0.0', + header:"# Changelog\n" + + "\n" + + "All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.\n" + + "\n" + + "For the release changelogs see [CHANGELOG.md](CHANGELOG.md) \n" + + "For the snapshot changelogs see [SNAPSHOT_CHANGELOG.md](SNAPSHOT_CHANGELOG.md)\n", +} diff --git a/README.md b/README.md index 763743a..c2286c8 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,9 @@ An advanced portals plugin for bukkit made by sekwah41 designed to have a wide r Also please use the markdown and not html for updates to this file, references can be found [here](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet) +# Module Layout +* **api**: All code for adding tags using addons. + # Branch Layout * [master](https://github.com/sekwah41/Advanced-Portals/) (Release Build) ![Build Status](https://travis-ci.org/sekwah41/Advanced-Portals.svg?branch=master) * [dev](https://github.com/sekwah41/Advanced-Portals/tree/dev) (Dev Build) ![Build Status](https://travis-ci.org/sekwah41/Advanced-Portals.svg?branch=dev) diff --git a/build.gradle b/build.gradle index 522edcf..4d20a43 100644 --- a/build.gradle +++ b/build.gradle @@ -1,16 +1,52 @@ -apply plugin: 'java' -apply plugin: 'maven' -apply plugin: 'idea' -apply plugin: 'eclipse' +import org.apache.commons.codec.Charsets +import org.apache.http.HttpEntity +import org.apache.http.HttpResponse +import org.apache.http.client.HttpClient +import org.apache.http.client.config.CookieSpecs +import org.apache.http.client.config.RequestConfig +import org.apache.http.client.methods.CloseableHttpResponse +import org.apache.http.client.methods.HttpPost +import org.apache.http.entity.ContentType +import org.apache.http.entity.mime.MultipartEntityBuilder +import org.apache.http.impl.client.CloseableHttpClient +import org.apache.http.impl.client.HttpClientBuilder +import org.apache.http.impl.client.HttpClients +import org.apache.http.client.methods.HttpGet +import com.google.gson.Gson -archivesBaseName = "advancedportals" + +apply plugin: 'java' +apply plugin: 'maven-publish' +apply plugin: 'idea' + +buildscript { + repositories { + maven {url "https://plugins.gradle.org/m2/"} + mavenCentral() + mavenLocal() + jcenter() + } + dependencies { + classpath "org.apache.httpcomponents:httpmime:4.5.13" + classpath "com.google.code.gson:gson:2.8.6" + classpath "org.apache.httpcomponents:httpclient:4.5.13" + } +} + +archivesBaseName = "Advanced-Portals" group = 'com.sekwah.advancedportals' version = '1.0.0' description = "" -sourceCompatibility = 1.8 -targetCompatibility = 1.8 +allprojects { + sourceCompatibility = 1.8 + targetCompatibility = 1.8 +} + +def branch = System.getenv("GITHUB_REF"); +def sha = System.getenv("GITHUB_SHA"); +def isDevBranch = branch == null || !(branch.startsWith("refs/tags/") && !branch.contains("-")) tasks.withType(JavaCompile) { options.encoding = 'UTF-8' @@ -18,7 +54,7 @@ tasks.withType(JavaCompile) { configurations { // configuration that holds jars to copy into lib - includeLibs + compile.extendsFrom(includeLibs) } repositories { @@ -29,28 +65,237 @@ repositories { // includeLibs just says to include the library in the final jar dependencies { - includeLibs group: 'com.google.code.gson', name: 'gson', version:'2.8.2' - compile group: 'com.google.code.gson', name: 'gson', version:'2.8.2' - includeLibs group: 'com.google.inject', name: 'guice', version:'4.0' - compile group: 'com.google.inject', name: 'guice', version:'4.0' - compile group: 'com.google.guava', name: 'guava', version: '29.0-jre' - - - // For spigot api - implementation "org.spigotmc:spigot-api:1.16.1-R0.1-SNAPSHOT" - - // For bukkit api - implementation "net.md-5:bungeecord-api:1.15-SNAPSHOT" + includeLibs project(':core') + //implementation project(':bungee') + //implementation project(':spigot') + //implementation project(':velocity') } + jar { - from configurations.includeLibs.collect { it.isDirectory() ? it : zipTree(it) } + // Filters the files out that are in the build folders. Look to see if there is a better way to do this? + from configurations.includeLibs.filter { + it.path.contains("\\build\\libs\\") + } .collect { + println("Including: ${it.name}") + it.isDirectory() ? it : zipTree(it) + } +} + +/** For pre-releases and testers to be able to try the latest commits if they want. + * If the builds start exceeding 8MB then we may want to upload to s3 instead and periodically clear. + * TODO possibly add a task that announces when builds are made? + * Though add a note that it may take a while for Curse to approve the files. + */ +task discordupload { + dependsOn(jar) + doLast { + String discordWebhook = System.getenv("DISCORD_WEBHOOK") + + if(discordWebhook != null) { + println("Logging Into Discord") + + CloseableHttpClient httpClient = HttpClients.createDefault() + HttpPost uploadFile = new HttpPost(discordWebhook) + + MultipartEntityBuilder builder = MultipartEntityBuilder.create() + builder.addTextBody("content", "New automated dev build\n\n" + + "Current Features: <${project.github}/blob/${sha}/docs/changelogs/SNAPSHOT_CHANGELOG.md>") + + builder.addBinaryBody("file", file(jar.archiveFile).newInputStream(), ContentType.APPLICATION_OCTET_STREAM, jar.archiveName) + + HttpEntity multipart = builder.build() + + uploadFile.setEntity(multipart) + CloseableHttpResponse response = httpClient.execute(uploadFile) + response.getEntity() + + println("Posted build") + + } else { + println("Discord webhook unspecified") + } + } +} + + +static String getValueFromCurseAPI(apiKey, endpoint) { + String API_BASE_URL = 'https://minecraft.curseforge.com' + + Gson gson = new Gson() + + HttpClient client = HttpClientBuilder.create() + .setDefaultRequestConfig(RequestConfig.custom() + .setCookieSpec(CookieSpecs.IGNORE_COOKIES).build()).build() + + HttpGet get = new HttpGet(API_BASE_URL + endpoint) + get.setHeader('X-Api-Token', apiKey) + + HttpResponse response = client.execute(get) + + int statusCode = response.statusLine.statusCode + + if (statusCode == 200) { + byte[] data = response.entity.content.bytes + return new String(data, Charsets.UTF_8) + } else { + if (response.getFirstHeader('content-type').value.contains('json')) { + InputStreamReader reader = new InputStreamReader(response.entity.content) + reader.close() + throw new RuntimeException("[CurseForge] Error") + } else { + throw new RuntimeException("[CurseForge] HTTP Error Code $response.statusLine.statusCode: $response.statusLine.reasonPhrase") + } + } +} + +/** + * Upload a single file (in case you also want to upload the other files like source n stuff) + * @param json + * @param file + * @return + * @throws IOException + * @throws URISyntaxException + */ +UploadResponse uploadFile(Metadata metadata, File file, String apiKey, Gson gson) throws IOException, URISyntaxException { + String API_BASE_URL = 'https://minecraft.curseforge.com' + String UPLOAD_URL = "/api/projects/%s/upload-file" + // Upload + // Important info + String uploadUrl = String.format(API_BASE_URL + UPLOAD_URL, project.curse_project_id) + + HttpClient client = HttpClientBuilder.create() + .setDefaultRequestConfig(RequestConfig.custom() + .setCookieSpec(CookieSpecs.IGNORE_COOKIES).build()).build() + + HttpPost post = new HttpPost(uploadUrl) + post.setHeader('X-Api-Token', apiKey) + + + // https://support.curseforge.com/en/support/solutions/articles/9000197321-curseforge-api + post.setEntity(MultipartEntityBuilder.create() + .addTextBody('metadata', gson.toJson(metadata), ContentType.APPLICATION_JSON) + .addBinaryBody('file', file) + .build()) + + HttpResponse response = client.execute(post) + InputStreamReader reader = new InputStreamReader(response.entity.content) + UploadResponse uploadResponse = gson.fromJson(reader, UploadResponse) + reader.close() + return uploadResponse +} + +class GameVersion { + int id + int gameVersionTypeID + String name + String slug +} + +/** + * As described here https://support.curseforge.com/en/support/solutions/articles/9000197321-curseforge-api + */ +class Metadata { + String changelog + String changelogType + int[] gameVersions + String releaseType +} + +class UploadResponse { + int id; +} + + +// Based on https://github.com/matthewprenger/CurseGradle as it didnt support Bukkit uploads at the time. +task curseforge { + dependsOn(jar) + doLast { + String apiKey = null + + if (System.getenv("CURSE_API") != null) { + apiKey = System.getenv("CURSE_API") + } + + if(apiKey != null) { + + Gson gson = new Gson() + + //String VERSION_TYPES_URL = "/api/game/version-types" + int gameVersionTypeID = 1 + String VERSION_URL = "/api/game/versions" + println("Uploading to CurseForge") + + // Get game versions + String gameVersionsString = getValueFromCurseAPI(apiKey, VERSION_URL) + GameVersion[] gameVersions = gson.fromJson(gameVersionsString, GameVersion[].class) + def versions = gameVersions.findAll {it.gameVersionTypeID == gameVersionTypeID} + + String[] supportedVersions = [ + "1.16", + "1.15", + "1.14", + "1.13" + ] + + def supportedGameVersions = versions.findAll {supportedVersions.contains(it.name)} + int[] supportedGameVersionIds = supportedGameVersions.collect {it.id}.toArray() + + println("Supported Version Id's ${supportedGameVersionIds}") + + Metadata uploadMetadata = new Metadata(); + + uploadMetadata.changelog = "${project.github}/blob/${sha}/docs/changelogs/CHANGELOG.md" + uploadMetadata.changelogType = "markdown" + uploadMetadata.releaseType = isDevBranch ? "beta" : "release" + uploadMetadata.gameVersions = supportedGameVersionIds + + def uploadId = uploadFile(uploadMetadata, file(jar.archiveFile), apiKey, gson) + + println("Uploaded with ID: ${uploadId.id}") + + println("Published build") + + } else { + println("Discord webhook unspecified") + } + } +// id = project.curse_project_id +// // TODO add code to reference this but also cut the latest change logs in for the files +// changelog = "${project.github}/blob/${sha}/CHANGELOG.md" +// changelogType = 'markdown' +// releaseType = 'release' +} + +task copyPlugin { + doLast { + copy { + if(System.env.MC_SERVER_LOC == null) { + throw new Exception('You must set the server location and jar to use') + } + println "$buildDir/libs/Advanced-Portals-${version}.jar" + println "${System.env.MC_SERVER_LOC}/plugins/Advanced-Portals-${version}.jar" + try { + delete fileTree("${System.env.MC_SERVER_LOC}/plugins/") { + include "*.jar" + } + } + catch(RuntimeException e) { + println e.getLocalizedMessage() + } + from file("$buildDir/libs/Advanced-Portals-${version}.jar") + into file("${System.env.MC_SERVER_LOC}/plugins/") + } + } } // Set SPIGOT_LOC to the location of your server and SPIGOT_JAR as the name of the jar file in the server you want to run // DIReallyKnowWhatIAmDoingISwear is to remove the stupid pause spigot has at the start task runJar() { doLast { + if(System.env.MC_SERVER_LOC == null || System.env.MC_SERVER_JAR == null) { + throw new Exception('You must set the server location and jar to use MC_SERVER_LOC and MC_SERVER_JAR') + } javaexec { main "-jar" args "${System.env.MC_SERVER_LOC}\\${System.env.MC_SERVER_JAR}.jar" @@ -60,11 +305,42 @@ task runJar() { } } - -// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task -// if it is present. -// If you remove this task, sources will not be generated. -task sourcesJar(type: Jar, dependsOn: classes) { - classifier = 'sources' - from sourceSets.main.allSource +/** + * These are needed as standard-version doesnt allow for the ability to skip tag versions for the changelog. + * Well it does but not on purpose and it breaks things. + * + * Tagging is skipped so that the release can be merged and confirmed (A little long winded but just to stop mistakes) + */ +task updateChangelog { + doLast{ + exec { + commandLine 'cmd', '/c', 'npx standard-version@9.3.0 -i docs/CHANGELOG.md -t (v)[0-9]+.[0-0]+.[0-0]+(?!-) --skip.tag' + ext.output = { + return standardOutput.toString() + } + } + exec { + commandLine 'cmd', '/c', 'npx standard-version@9.3.0 --skip.changelog --skip.bump --skip.tag' + ext.output = { + return standardOutput.toString() + } + } + } +} + +task updateChangelogPreRelease(type: Exec) { + commandLine 'cmd', '/c', 'npx standard-version@9.3.0 --prerelease -i docs/SNAPSHOT_CHANGELOG.md --skip.tag' + ext.output = { + return standardOutput.toString() + } +} + +/** + * Just to stop having to manually tagging. Probably could do this easier but meh stops typos or other issues. + */ +task tagRelease(type: Exec) { + commandLine 'cmd', '/c', 'npx standard-version@9.3.0 --prerelease -i docs/SNAPSHOT_CHANGELOG.md --skip.changelog --skip.bump' + ext.output = { + return standardOutput.toString() + } } diff --git a/bungee/src/build.gradle b/bungee/src/build.gradle new file mode 100644 index 0000000..5790054 --- /dev/null +++ b/bungee/src/build.gradle @@ -0,0 +1,57 @@ + +tasks.withType(JavaCompile) { + options.encoding = 'UTF-8' +} + +configurations { + // configuration that holds jars to copy into lib + includeLibs +} + +repositories { + maven { url "https://repo.maven.apache.org/maven2" } + maven { url "https://hub.spigotmc.org/nexus/content/repositories/snapshots/" } + maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } +} + +// includeLibs just says to include the library in the final jar +dependencies { + includeLibs group: 'com.google.code.gson', name: 'gson', version:'2.8.2' + compile group: 'com.google.code.gson', name: 'gson', version:'2.8.2' + includeLibs group: 'com.google.inject', name: 'guice', version:'4.0' + compile group: 'com.google.inject', name: 'guice', version:'4.0' + compile group: 'com.google.guava', name: 'guava', version: '29.0-jre' + + + // For spigot api + implementation "org.spigotmc:spigot-api:1.16.1-R0.1-SNAPSHOT" + + // For bukkit api + implementation "net.md-5:bungeecord-api:1.15-SNAPSHOT" +} + +jar { + from configurations.includeLibs.collect { it.isDirectory() ? it : zipTree(it) } +} + +// Set SPIGOT_LOC to the location of your server and SPIGOT_JAR as the name of the jar file in the server you want to run +// DIReallyKnowWhatIAmDoingISwear is to remove the stupid pause spigot has at the start +task runJar() { + doLast { + javaexec { + main "-jar" + args "${System.env.MC_SERVER_LOC}\\${System.env.MC_SERVER_JAR}.jar" + jvmArgs = ["-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005", "-DIReallyKnowWhatIAmDoingISwear=true"] + workingDir "${System.env.MC_SERVER_LOC}" + } + } +} + + +// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task +// if it is present. +// If you remove this task, sources will not be generated. +task sourcesJar(type: Jar, dependsOn: classes) { + classifier = 'sources' + from sourceSets.main.allSource +} diff --git a/core/build.gradle b/core/build.gradle new file mode 100644 index 0000000..69bb538 --- /dev/null +++ b/core/build.gradle @@ -0,0 +1,48 @@ +apply plugin: 'java' +apply plugin: 'maven' +apply plugin: 'idea' +apply plugin: 'eclipse' + + +tasks.withType(JavaCompile) { + options.encoding = 'UTF-8' +} + +configurations { + // configuration that holds jars to copy into lib + includeLibs +} + +repositories { + maven { url "https://repo.maven.apache.org/maven2" } + maven { url "https://hub.spigotmc.org/nexus/content/repositories/snapshots/" } + maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } +} + +// includeLibs just says to include the library in the final jar +dependencies { + includeLibs group: 'com.google.code.gson', name: 'gson', version:'2.8.2' + compile group: 'com.google.code.gson', name: 'gson', version:'2.8.2' + includeLibs group: 'com.google.inject', name: 'guice', version:'4.0' + compile group: 'com.google.inject', name: 'guice', version:'4.0' + compile group: 'com.google.guava', name: 'guava', version: '29.0-jre' +} + +jar { + from configurations.includeLibs.collect { + it.isDirectory() ? it : zipTree(it) + } +} + +// Set SPIGOT_LOC to the location of your server and SPIGOT_JAR as the name of the jar file in the server you want to run +// DIReallyKnowWhatIAmDoingISwear is to remove the stupid pause spigot has at the start +task runJar() { + doLast { + javaexec { + main "-jar" + args "${System.env.MC_SERVER_LOC}\\${System.env.MC_SERVER_JAR}.jar" + jvmArgs = ["-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005", "-DIReallyKnowWhatIAmDoingISwear=true"] + workingDir "${System.env.MC_SERVER_LOC}" + } + } +} diff --git a/src/main/java/com/sekwah/advancedportals/Config.java b/core/src/main/java/com/sekwah/advancedportals/Config.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/Config.java rename to core/src/main/java/com/sekwah/advancedportals/Config.java diff --git a/src/main/java/com/sekwah/advancedportals/ConfigRepository.java b/core/src/main/java/com/sekwah/advancedportals/ConfigRepository.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/ConfigRepository.java rename to core/src/main/java/com/sekwah/advancedportals/ConfigRepository.java diff --git a/src/main/java/com/sekwah/advancedportals/ConfigRepositoryImpl.java b/core/src/main/java/com/sekwah/advancedportals/ConfigRepositoryImpl.java similarity index 87% rename from src/main/java/com/sekwah/advancedportals/ConfigRepositoryImpl.java rename to core/src/main/java/com/sekwah/advancedportals/ConfigRepositoryImpl.java index 7bb6a52..b613850 100644 --- a/src/main/java/com/sekwah/advancedportals/ConfigRepositoryImpl.java +++ b/core/src/main/java/com/sekwah/advancedportals/ConfigRepositoryImpl.java @@ -5,15 +5,16 @@ import com.sekwah.advancedportals.core.config.Config; import com.sekwah.advancedportals.core.data.DataStorage; import java.util.HashMap; +import java.util.Map; @Singleton public class ConfigRepositoryImpl implements ConfigRepository { - private HashMap configs; + private Map configs; private Config config; public ConfigRepositoryImpl() { - configs = new HashMap(); + configs = new HashMap<>(); } public T getValue(String output) { @@ -26,10 +27,6 @@ public class ConfigRepositoryImpl implements ConfigRepository { return null; } - private void test() { - this.getValue(""); - } - public boolean getUseOnlySpecialAxe() { return this.config.useOnlySpecialAxe; } diff --git a/src/main/java/com/sekwah/advancedportals/core/AdvancedPortalsCore.java b/core/src/main/java/com/sekwah/advancedportals/core/AdvancedPortalsCore.java similarity index 96% rename from src/main/java/com/sekwah/advancedportals/core/AdvancedPortalsCore.java rename to core/src/main/java/com/sekwah/advancedportals/core/AdvancedPortalsCore.java index d211dab..dcd15dc 100644 --- a/src/main/java/com/sekwah/advancedportals/core/AdvancedPortalsCore.java +++ b/core/src/main/java/com/sekwah/advancedportals/core/AdvancedPortalsCore.java @@ -16,8 +16,6 @@ import com.sekwah.advancedportals.core.commands.subcommands.portal.*; import com.sekwah.advancedportals.core.config.RepositoryModule; import com.sekwah.advancedportals.core.data.DataStorage; import com.sekwah.advancedportals.ConfigRepository; -import com.sekwah.advancedportals.core.registry.RegisterBuilder; -import com.sekwah.advancedportals.core.registry.Registrar; import com.sekwah.advancedportals.core.util.InfoLogger; import com.sekwah.advancedportals.core.util.Lang; import com.sekwah.advancedportals.core.connector.command.CommandRegister; @@ -71,12 +69,6 @@ public class AdvancedPortalsCore { this.onEnable(); } - public void test() { - Registrar registrar = RegisterBuilder.newBuilder() - .inheritPermissions(true) - .build(); - } - private int checkMcVer(int[] mcVer) { int maxSupportedVer = 13; int minSupportedVer = 13; @@ -150,7 +142,7 @@ public class AdvancedPortalsCore { // TODO remove once annotations are done this.portalCommand.registerSubCommand("version", new VersionSubCommand()); - this.portalCommand.registerSubCommand("transupdate", new TransUpdateSubCommand()); + this.portalCommand.registerSubCommand("langupdate", new LangUpdateSubCommand()); this.portalCommand.registerSubCommand("reload", new ReloadSubCommand()); this.portalCommand.registerSubCommand("selector", new SelectorSubCommand(), "wand"); this.portalCommand.registerSubCommand("portalblock", new PortalBlockSubCommand()); diff --git a/src/main/java/com/sekwah/advancedportals/core/CoreListeners.java b/core/src/main/java/com/sekwah/advancedportals/core/CoreListeners.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/CoreListeners.java rename to core/src/main/java/com/sekwah/advancedportals/core/CoreListeners.java diff --git a/src/main/java/com/sekwah/advancedportals/core/api/commands/SubCommand.java b/core/src/main/java/com/sekwah/advancedportals/core/api/commands/SubCommand.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/api/commands/SubCommand.java rename to core/src/main/java/com/sekwah/advancedportals/core/api/commands/SubCommand.java diff --git a/src/main/java/com/sekwah/advancedportals/core/api/destination/Destination.java b/core/src/main/java/com/sekwah/advancedportals/core/api/destination/Destination.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/api/destination/Destination.java rename to core/src/main/java/com/sekwah/advancedportals/core/api/destination/Destination.java diff --git a/src/main/java/com/sekwah/advancedportals/core/api/effect/TestEffect.java b/core/src/main/java/com/sekwah/advancedportals/core/api/effect/TestEffect.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/api/effect/TestEffect.java rename to core/src/main/java/com/sekwah/advancedportals/core/api/effect/TestEffect.java diff --git a/src/main/java/com/sekwah/advancedportals/core/api/effect/WarpEffect.java b/core/src/main/java/com/sekwah/advancedportals/core/api/effect/WarpEffect.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/api/effect/WarpEffect.java rename to core/src/main/java/com/sekwah/advancedportals/core/api/effect/WarpEffect.java diff --git a/src/main/java/com/sekwah/advancedportals/core/api/events/PortalEditEvent.java b/core/src/main/java/com/sekwah/advancedportals/core/api/events/PortalEditEvent.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/api/events/PortalEditEvent.java rename to core/src/main/java/com/sekwah/advancedportals/core/api/events/PortalEditEvent.java diff --git a/src/main/java/com/sekwah/advancedportals/core/api/events/PortalsLoadedEvent.java b/core/src/main/java/com/sekwah/advancedportals/core/api/events/PortalsLoadedEvent.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/api/events/PortalsLoadedEvent.java rename to core/src/main/java/com/sekwah/advancedportals/core/api/events/PortalsLoadedEvent.java diff --git a/src/main/java/com/sekwah/advancedportals/core/api/events/WarpEvent.java b/core/src/main/java/com/sekwah/advancedportals/core/api/events/WarpEvent.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/api/events/WarpEvent.java rename to core/src/main/java/com/sekwah/advancedportals/core/api/events/WarpEvent.java diff --git a/src/main/java/com/sekwah/advancedportals/core/api/portal/AdvancedPortal.java b/core/src/main/java/com/sekwah/advancedportals/core/api/portal/AdvancedPortal.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/api/portal/AdvancedPortal.java rename to core/src/main/java/com/sekwah/advancedportals/core/api/portal/AdvancedPortal.java diff --git a/src/main/java/com/sekwah/advancedportals/core/api/warphandler/ActivationData.java b/core/src/main/java/com/sekwah/advancedportals/core/api/warphandler/ActivationData.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/api/warphandler/ActivationData.java rename to core/src/main/java/com/sekwah/advancedportals/core/api/warphandler/ActivationData.java diff --git a/src/main/java/com/sekwah/advancedportals/core/api/warphandler/TagHandler.java b/core/src/main/java/com/sekwah/advancedportals/core/api/warphandler/TagHandler.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/api/warphandler/TagHandler.java rename to core/src/main/java/com/sekwah/advancedportals/core/api/warphandler/TagHandler.java diff --git a/src/main/java/com/sekwah/advancedportals/core/commands/CommandTemplate.java b/core/src/main/java/com/sekwah/advancedportals/core/commands/CommandTemplate.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/commands/CommandTemplate.java rename to core/src/main/java/com/sekwah/advancedportals/core/commands/CommandTemplate.java diff --git a/src/main/java/com/sekwah/advancedportals/core/commands/CommandWithSubCommands.java b/core/src/main/java/com/sekwah/advancedportals/core/commands/CommandWithSubCommands.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/commands/CommandWithSubCommands.java rename to core/src/main/java/com/sekwah/advancedportals/core/commands/CommandWithSubCommands.java diff --git a/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/desti/CreateDestiSubCommand.java b/core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/desti/CreateDestiSubCommand.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/commands/subcommands/desti/CreateDestiSubCommand.java rename to core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/desti/CreateDestiSubCommand.java diff --git a/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/CreatePortalSubCommand.java b/core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/CreatePortalSubCommand.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/CreatePortalSubCommand.java rename to core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/CreatePortalSubCommand.java diff --git a/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/EndGatewayBlockSubCommand.java b/core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/EndGatewayBlockSubCommand.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/EndGatewayBlockSubCommand.java rename to core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/EndGatewayBlockSubCommand.java diff --git a/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/EndPortalBlockSubCommand.java b/core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/EndPortalBlockSubCommand.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/EndPortalBlockSubCommand.java rename to core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/EndPortalBlockSubCommand.java diff --git a/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/TransUpdateSubCommand.java b/core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/LangUpdateSubCommand.java similarity index 93% rename from src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/TransUpdateSubCommand.java rename to core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/LangUpdateSubCommand.java index 2069a28..f632396 100644 --- a/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/TransUpdateSubCommand.java +++ b/core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/LangUpdateSubCommand.java @@ -8,12 +8,12 @@ import com.sekwah.advancedportals.core.connector.container.CommandSenderContaine import java.util.List; -public class TransUpdateSubCommand implements SubCommand { +public class LangUpdateSubCommand implements SubCommand { @Inject private AdvancedPortalsCore portalsCore; - public TransUpdateSubCommand() { + public LangUpdateSubCommand() { } @Override diff --git a/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/PortalBlockSubCommand.java b/core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/PortalBlockSubCommand.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/PortalBlockSubCommand.java rename to core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/PortalBlockSubCommand.java diff --git a/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/ReloadSubCommand.java b/core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/ReloadSubCommand.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/ReloadSubCommand.java rename to core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/ReloadSubCommand.java diff --git a/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/RemoveSubCommand.java b/core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/RemoveSubCommand.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/RemoveSubCommand.java rename to core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/RemoveSubCommand.java diff --git a/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/SelectorSubCommand.java b/core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/SelectorSubCommand.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/SelectorSubCommand.java rename to core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/SelectorSubCommand.java diff --git a/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/VersionSubCommand.java b/core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/VersionSubCommand.java similarity index 88% rename from src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/VersionSubCommand.java rename to core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/VersionSubCommand.java index 89d23fe..807190a 100644 --- a/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/VersionSubCommand.java +++ b/core/src/main/java/com/sekwah/advancedportals/core/commands/subcommands/portal/VersionSubCommand.java @@ -2,13 +2,11 @@ package com.sekwah.advancedportals.core.commands.subcommands.portal; import com.sekwah.advancedportals.core.AdvancedPortalsCore; import com.sekwah.advancedportals.core.api.commands.SubCommand; -import com.sekwah.advancedportals.core.registry.SubCmd; import com.sekwah.advancedportals.core.util.Lang; import com.sekwah.advancedportals.core.connector.container.CommandSenderContainer; import java.util.List; -@SubCmd(name="version", parent=SubCmd.TYPE.PORTAL, minArgs=5, permissions= {"Test"}) public class VersionSubCommand implements SubCommand { @Override diff --git a/src/main/java/com/sekwah/advancedportals/core/config/Config.java b/core/src/main/java/com/sekwah/advancedportals/core/config/Config.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/config/Config.java rename to core/src/main/java/com/sekwah/advancedportals/core/config/Config.java diff --git a/src/main/java/com/sekwah/advancedportals/core/config/RepositoryModule.java b/core/src/main/java/com/sekwah/advancedportals/core/config/RepositoryModule.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/config/RepositoryModule.java rename to core/src/main/java/com/sekwah/advancedportals/core/config/RepositoryModule.java diff --git a/src/main/java/com/sekwah/advancedportals/core/connector/command/CommandHandler.java b/core/src/main/java/com/sekwah/advancedportals/core/connector/command/CommandHandler.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/connector/command/CommandHandler.java rename to core/src/main/java/com/sekwah/advancedportals/core/connector/command/CommandHandler.java diff --git a/src/main/java/com/sekwah/advancedportals/core/connector/command/CommandRegister.java b/core/src/main/java/com/sekwah/advancedportals/core/connector/command/CommandRegister.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/connector/command/CommandRegister.java rename to core/src/main/java/com/sekwah/advancedportals/core/connector/command/CommandRegister.java diff --git a/src/main/java/com/sekwah/advancedportals/core/connector/container/CommandSenderContainer.java b/core/src/main/java/com/sekwah/advancedportals/core/connector/container/CommandSenderContainer.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/connector/container/CommandSenderContainer.java rename to core/src/main/java/com/sekwah/advancedportals/core/connector/container/CommandSenderContainer.java diff --git a/src/main/java/com/sekwah/advancedportals/core/connector/container/PlayerContainer.java b/core/src/main/java/com/sekwah/advancedportals/core/connector/container/PlayerContainer.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/connector/container/PlayerContainer.java rename to core/src/main/java/com/sekwah/advancedportals/core/connector/container/PlayerContainer.java diff --git a/src/main/java/com/sekwah/advancedportals/core/connector/container/ServerContainer.java b/core/src/main/java/com/sekwah/advancedportals/core/connector/container/ServerContainer.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/connector/container/ServerContainer.java rename to core/src/main/java/com/sekwah/advancedportals/core/connector/container/ServerContainer.java diff --git a/src/main/java/com/sekwah/advancedportals/core/connector/container/WorldContainer.java b/core/src/main/java/com/sekwah/advancedportals/core/connector/container/WorldContainer.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/connector/container/WorldContainer.java rename to core/src/main/java/com/sekwah/advancedportals/core/connector/container/WorldContainer.java diff --git a/src/main/java/com/sekwah/advancedportals/core/connector/info/DataCollector.java b/core/src/main/java/com/sekwah/advancedportals/core/connector/info/DataCollector.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/connector/info/DataCollector.java rename to core/src/main/java/com/sekwah/advancedportals/core/connector/info/DataCollector.java diff --git a/src/main/java/com/sekwah/advancedportals/core/data/DataStorage.java b/core/src/main/java/com/sekwah/advancedportals/core/data/DataStorage.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/data/DataStorage.java rename to core/src/main/java/com/sekwah/advancedportals/core/data/DataStorage.java diff --git a/src/main/java/com/sekwah/advancedportals/core/data/DataTag.java b/core/src/main/java/com/sekwah/advancedportals/core/data/DataTag.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/data/DataTag.java rename to core/src/main/java/com/sekwah/advancedportals/core/data/DataTag.java diff --git a/src/main/java/com/sekwah/advancedportals/core/data/PlayerLocation.java b/core/src/main/java/com/sekwah/advancedportals/core/data/PlayerLocation.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/data/PlayerLocation.java rename to core/src/main/java/com/sekwah/advancedportals/core/data/PlayerLocation.java diff --git a/src/main/java/com/sekwah/advancedportals/core/data/PlayerTempData.java b/core/src/main/java/com/sekwah/advancedportals/core/data/PlayerTempData.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/data/PlayerTempData.java rename to core/src/main/java/com/sekwah/advancedportals/core/data/PlayerTempData.java diff --git a/src/main/java/com/sekwah/advancedportals/core/data/PortalLocation.java b/core/src/main/java/com/sekwah/advancedportals/core/data/PortalLocation.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/data/PortalLocation.java rename to core/src/main/java/com/sekwah/advancedportals/core/data/PortalLocation.java diff --git a/src/main/java/com/sekwah/advancedportals/core/registry/AnnotationScanner.java b/core/src/main/java/com/sekwah/advancedportals/core/registry/AnnotationScanner.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/registry/AnnotationScanner.java rename to core/src/main/java/com/sekwah/advancedportals/core/registry/AnnotationScanner.java diff --git a/src/main/java/com/sekwah/advancedportals/core/registry/CommandDemo.java b/core/src/main/java/com/sekwah/advancedportals/core/registry/CommandDemo.java similarity index 86% rename from src/main/java/com/sekwah/advancedportals/core/registry/CommandDemo.java rename to core/src/main/java/com/sekwah/advancedportals/core/registry/CommandDemo.java index b78a447..12dfb58 100644 --- a/src/main/java/com/sekwah/advancedportals/core/registry/CommandDemo.java +++ b/core/src/main/java/com/sekwah/advancedportals/core/registry/CommandDemo.java @@ -12,7 +12,7 @@ public class CommandDemo implements CommandHandler { } @Override - public void onCommandFailure(String[] command, CommandSenderContainer sender, CommandException exception) { + public void onCommandFailure(String[] command, CommandSenderContainer sender, CommandException exception, ImmutableList args) { } } diff --git a/src/main/java/com/sekwah/advancedportals/core/registry/CommandErrorException.java b/core/src/main/java/com/sekwah/advancedportals/core/registry/CommandErrorException.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/registry/CommandErrorException.java rename to core/src/main/java/com/sekwah/advancedportals/core/registry/CommandErrorException.java diff --git a/src/main/java/com/sekwah/advancedportals/core/registry/CommandException.java b/core/src/main/java/com/sekwah/advancedportals/core/registry/CommandException.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/registry/CommandException.java rename to core/src/main/java/com/sekwah/advancedportals/core/registry/CommandException.java diff --git a/src/main/java/com/sekwah/advancedportals/core/registry/CommandHandler.java b/core/src/main/java/com/sekwah/advancedportals/core/registry/CommandHandler.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/registry/CommandHandler.java rename to core/src/main/java/com/sekwah/advancedportals/core/registry/CommandHandler.java diff --git a/src/main/java/com/sekwah/advancedportals/core/registry/ErrorCode.java b/core/src/main/java/com/sekwah/advancedportals/core/registry/ErrorCode.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/registry/ErrorCode.java rename to core/src/main/java/com/sekwah/advancedportals/core/registry/ErrorCode.java diff --git a/src/main/java/com/sekwah/advancedportals/core/registry/SubCommandRegistry.java b/core/src/main/java/com/sekwah/advancedportals/core/registry/SubCommandRegistry.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/registry/SubCommandRegistry.java rename to core/src/main/java/com/sekwah/advancedportals/core/registry/SubCommandRegistry.java diff --git a/src/main/java/com/sekwah/advancedportals/core/registry/TagRegistry.java b/core/src/main/java/com/sekwah/advancedportals/core/registry/TagRegistry.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/registry/TagRegistry.java rename to core/src/main/java/com/sekwah/advancedportals/core/registry/TagRegistry.java diff --git a/src/main/java/com/sekwah/advancedportals/core/registry/WarpEffectRegistry.java b/core/src/main/java/com/sekwah/advancedportals/core/registry/WarpEffectRegistry.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/registry/WarpEffectRegistry.java rename to core/src/main/java/com/sekwah/advancedportals/core/registry/WarpEffectRegistry.java diff --git a/src/main/java/com/sekwah/advancedportals/core/services/DestinationServices.java b/core/src/main/java/com/sekwah/advancedportals/core/services/DestinationServices.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/services/DestinationServices.java rename to core/src/main/java/com/sekwah/advancedportals/core/services/DestinationServices.java diff --git a/src/main/java/com/sekwah/advancedportals/core/services/PortalServices.java b/core/src/main/java/com/sekwah/advancedportals/core/services/PortalServices.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/services/PortalServices.java rename to core/src/main/java/com/sekwah/advancedportals/core/services/PortalServices.java diff --git a/src/main/java/com/sekwah/advancedportals/core/services/PortalTempDataServices.java b/core/src/main/java/com/sekwah/advancedportals/core/services/PortalTempDataServices.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/services/PortalTempDataServices.java rename to core/src/main/java/com/sekwah/advancedportals/core/services/PortalTempDataServices.java diff --git a/src/main/java/com/sekwah/advancedportals/core/util/InfoLogger.java b/core/src/main/java/com/sekwah/advancedportals/core/util/InfoLogger.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/util/InfoLogger.java rename to core/src/main/java/com/sekwah/advancedportals/core/util/InfoLogger.java diff --git a/src/main/java/com/sekwah/advancedportals/core/util/Lang.java b/core/src/main/java/com/sekwah/advancedportals/core/util/Lang.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/util/Lang.java rename to core/src/main/java/com/sekwah/advancedportals/core/util/Lang.java diff --git a/src/main/java/com/sekwah/advancedportals/core/util/TagReader.java b/core/src/main/java/com/sekwah/advancedportals/core/util/TagReader.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/core/util/TagReader.java rename to core/src/main/java/com/sekwah/advancedportals/core/util/TagReader.java diff --git a/src/main/java/com/sekwah/advancedportals/repository/DestinationRepository.java b/core/src/main/java/com/sekwah/advancedportals/repository/DestinationRepository.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/repository/DestinationRepository.java rename to core/src/main/java/com/sekwah/advancedportals/repository/DestinationRepository.java diff --git a/src/main/java/com/sekwah/advancedportals/repository/IDestinationRepository.java b/core/src/main/java/com/sekwah/advancedportals/repository/IDestinationRepository.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/repository/IDestinationRepository.java rename to core/src/main/java/com/sekwah/advancedportals/repository/IDestinationRepository.java diff --git a/src/main/java/com/sekwah/advancedportals/repository/IJsonRepository.java b/core/src/main/java/com/sekwah/advancedportals/repository/IJsonRepository.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/repository/IJsonRepository.java rename to core/src/main/java/com/sekwah/advancedportals/repository/IJsonRepository.java diff --git a/src/main/java/com/sekwah/advancedportals/repository/IPortalRepository.java b/core/src/main/java/com/sekwah/advancedportals/repository/IPortalRepository.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/repository/IPortalRepository.java rename to core/src/main/java/com/sekwah/advancedportals/repository/IPortalRepository.java diff --git a/src/main/java/com/sekwah/advancedportals/repository/IPortalTempDataRepository.java b/core/src/main/java/com/sekwah/advancedportals/repository/IPortalTempDataRepository.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/repository/IPortalTempDataRepository.java rename to core/src/main/java/com/sekwah/advancedportals/repository/IPortalTempDataRepository.java diff --git a/src/main/java/com/sekwah/advancedportals/repository/PortalRepository.java b/core/src/main/java/com/sekwah/advancedportals/repository/PortalRepository.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/repository/PortalRepository.java rename to core/src/main/java/com/sekwah/advancedportals/repository/PortalRepository.java diff --git a/src/main/java/com/sekwah/advancedportals/services/DestinationServices.java b/core/src/main/java/com/sekwah/advancedportals/services/DestinationServices.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/services/DestinationServices.java rename to core/src/main/java/com/sekwah/advancedportals/services/DestinationServices.java diff --git a/src/main/java/com/sekwah/advancedportals/services/PortalServices.java b/core/src/main/java/com/sekwah/advancedportals/services/PortalServices.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/services/PortalServices.java rename to core/src/main/java/com/sekwah/advancedportals/services/PortalServices.java diff --git a/src/main/java/com/sekwah/advancedportals/services/Response.java b/core/src/main/java/com/sekwah/advancedportals/services/Response.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/services/Response.java rename to core/src/main/java/com/sekwah/advancedportals/services/Response.java diff --git a/src/main/resources/lang/de_DE.lang b/core/src/main/resources/lang/de_DE.lang similarity index 100% rename from src/main/resources/lang/de_DE.lang rename to core/src/main/resources/lang/de_DE.lang diff --git a/src/main/resources/lang/en_GB.lang b/core/src/main/resources/lang/en_GB.lang similarity index 100% rename from src/main/resources/lang/en_GB.lang rename to core/src/main/resources/lang/en_GB.lang diff --git a/src/main/resources/lang/fr_FR.lang b/core/src/main/resources/lang/fr_FR.lang similarity index 100% rename from src/main/resources/lang/fr_FR.lang rename to core/src/main/resources/lang/fr_FR.lang diff --git a/src/main/resources/lang/hu_HU.lang b/core/src/main/resources/lang/hu_HU.lang similarity index 100% rename from src/main/resources/lang/hu_HU.lang rename to core/src/main/resources/lang/hu_HU.lang diff --git a/src/main/resources/plugin.yml b/core/src/main/resources/plugin.yml similarity index 100% rename from src/main/resources/plugin.yml rename to core/src/main/resources/plugin.yml diff --git a/docs/changelogs/CHANGELOG.md b/docs/changelogs/CHANGELOG.md new file mode 100644 index 0000000..851839c --- /dev/null +++ b/docs/changelogs/CHANGELOG.md @@ -0,0 +1,88 @@ +# Changelog + +All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + +For the release changelogs see [CHANGELOG.md](CHANGELOG.md) +For the snapshot changelogs see [SNAPSHOT_CHANGELOG.md](SNAPSHOT_CHANGELOG.md) + +## 0.6.0 (2021-05-19) + + +### Features + +* **proxy:** Added a ForceEnableProxySupport config option ([99c810e](https://github.com/sekwah41/Advanced-Portals/commit/99c810e1beeee743734ec451ffe5df312eec8726)) +* **proxy:** Added Velocity support ([b243b4d](https://github.com/sekwah41/Advanced-Portals/commit/b243b4d889b8039cb800d981d44d85da06ff62d5)) +* **proxy:** Modern forwarding will be automatically detected. ([f3c8f73](https://github.com/sekwah41/Advanced-Portals/commit/f3c8f73975857a4e5d31a6a21111eee8b7888bdd)) +* Added configurable proxy teleport delay ([a1121ad](https://github.com/sekwah41/Advanced-Portals/commit/a1121adc10addfcce515d1358d1274232109fdfd)) + +### 0.5.12 + + * Added support for Velocity. + * Also fixed some issues with entity teleporting. + +### 0.5.11 + + * Missing changelogs + +### 0.5.10 + + * Missing changelogs + +### 0.5.10 + + * Added fix for command portals spam triggering if they didn't teleport you out. + * Made portals not activate if you were teleported into them by another portal (to allow linking zones like a star trek warp pad) + +### 0.5.9 + + * Missing changelogs + +### 0.5.8 + + * Missing changelogs + +### 0.5.7 + + + * Extra checks added by @tmantti to fix slow connections to new servers from activating the destination location too quick. + +### 0.5.6 +* Fixed packet exploit affecting destinations (only effecting versions 0.5.0 to 0.5.5). + +### 0.5.5 + * Added support for 1.16 + * Reworked chat menus to better use Spigot API + * Changed edit menu to have Activate instead of Teleport to destination + * Compat code changed. You must now use Spigot rather than CraftBukkit. + +### 0.5.4 + * Added bungee backup methods to ensure bungee and desti work correctly together + * Fixed protection region issue + * Reworked the warp command and fixed the surrounding permissions + * Disabling gateway beams is now enabled for placing the blocks as well as by a few other means + +### 0.5.3 + + * Fixed destination bug. + +### 0.5.2 + + * Fixed issue with bungee destinations. + +### 0.5.1 + + * Fixed warp permission info + +### 0.5.0 + + * Added command: + * Fix for bungee warps + +### 0.4.0 + + * Individual portal cooldown added + * Bungee improvements + +### Earlier + + * See github releases and spigot pages for more info. diff --git a/docs/changelogs/SNAPSHOT_CHANGELOG.md b/docs/changelogs/SNAPSHOT_CHANGELOG.md new file mode 100644 index 0000000..22e6041 --- /dev/null +++ b/docs/changelogs/SNAPSHOT_CHANGELOG.md @@ -0,0 +1,26 @@ +# Changelog + +All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. + +For the release changelogs see [CHANGELOG.md](CHANGELOG.md) +For the snapshot changelogs see [SNAPSHOT_CHANGELOG.md](SNAPSHOT_CHANGELOG.md) + +### [0.5.13-2](https://github.com/sekwah41/Advanced-Portals/compare/v0.5.13-1...v0.5.13-2) (2021-05-14) + + * No code changes, just updated the changelog generation. + +### 0.5.13-1 (2021-05-12) + + +### Features + +* Added configurable proxy teleport delay ([a1121ad](https://github.com/sekwah41/Advanced-Portals/commit/a1121adc10addfcce515d1358d1274232109fdfd)) + +### 0.5.13-0 (2021-05-12) + + * Build Tool Change: Updated versioning and changelog tooling and standards. + * Added improved support for Velocity (You can now add it directly to Velocity as a plugin) + * Added a ForceEnableProxySupport config option in case any are not detected + * Modern forwarding will be automatically detected. You will no longer need to manually set ForceEnableProxySupport + + diff --git a/gradle.properties b/gradle.properties index f959db5..e97e012 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,6 @@ z# https://docs.gradle.org/current/userguide/build_environment.html # Disable with --no-build-cache -org.gradle.caching=true \ No newline at end of file +org.gradle.caching=true + +github=https://github.com/sekwah41/Advanced-Portals +curse_project_id=86001 diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..ee27519 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,5 @@ +rootProject.name = "advanced-portals" +include 'spigot' +include 'velocity' +include 'bungee' +include 'core' diff --git a/spigot/build.gradle b/spigot/build.gradle new file mode 100644 index 0000000..8407e98 --- /dev/null +++ b/spigot/build.gradle @@ -0,0 +1,47 @@ +apply plugin: 'java' +apply plugin: 'maven' +apply plugin: 'idea' +apply plugin: 'eclipse' + + +tasks.withType(JavaCompile) { + options.encoding = 'UTF-8' +} + +configurations { + // configuration that holds jars to copy into lib + includeLibs +} + +repositories { + maven { url "https://repo.maven.apache.org/maven2" } + maven { url "https://hub.spigotmc.org/nexus/content/repositories/snapshots/" } + maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } +} + +// includeLibs just says to include the library in the final jar +dependencies { + implementation project(":core") + + // For spigot api + implementation "org.spigotmc:spigot-api:1.16.1-R0.1-SNAPSHOT" +} + +jar { + from configurations.includeLibs.collect { + it.isDirectory() ? it : zipTree(it) + } +} + +// Set SPIGOT_LOC to the location of your server and SPIGOT_JAR as the name of the jar file in the server you want to run +// DIReallyKnowWhatIAmDoingISwear is to remove the stupid pause spigot has at the start +task runJar() { + doLast { + javaexec { + main "-jar" + args "${System.env.MC_SERVER_LOC}\\${System.env.MC_SERVER_JAR}.jar" + jvmArgs = ["-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005", "-DIReallyKnowWhatIAmDoingISwear=true"] + workingDir "${System.env.MC_SERVER_LOC}" + } + } +} diff --git a/src/main/java/com/sekwah/advancedportals/spigot/AdvancedPortalsPlugin.java b/spigot/src/main/java/com/sekwah/advancedportals/spigot/AdvancedPortalsPlugin.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/spigot/AdvancedPortalsPlugin.java rename to spigot/src/main/java/com/sekwah/advancedportals/spigot/AdvancedPortalsPlugin.java diff --git a/src/main/java/com/sekwah/advancedportals/spigot/Listeners.java b/spigot/src/main/java/com/sekwah/advancedportals/spigot/Listeners.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/spigot/Listeners.java rename to spigot/src/main/java/com/sekwah/advancedportals/spigot/Listeners.java diff --git a/src/main/java/com/sekwah/advancedportals/spigot/SpigotInfoLogger.java b/spigot/src/main/java/com/sekwah/advancedportals/spigot/SpigotInfoLogger.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/spigot/SpigotInfoLogger.java rename to spigot/src/main/java/com/sekwah/advancedportals/spigot/SpigotInfoLogger.java diff --git a/src/main/java/com/sekwah/advancedportals/spigot/convertolddata/ConfigAccessor.java b/spigot/src/main/java/com/sekwah/advancedportals/spigot/convertolddata/ConfigAccessor.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/spigot/convertolddata/ConfigAccessor.java rename to spigot/src/main/java/com/sekwah/advancedportals/spigot/convertolddata/ConfigAccessor.java diff --git a/src/main/java/com/sekwah/advancedportals/spigot/convertolddata/ConvertOldSubCommand.java b/spigot/src/main/java/com/sekwah/advancedportals/spigot/convertolddata/ConvertOldSubCommand.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/spigot/convertolddata/ConvertOldSubCommand.java rename to spigot/src/main/java/com/sekwah/advancedportals/spigot/convertolddata/ConvertOldSubCommand.java diff --git a/src/main/java/com/sekwah/advancedportals/spigot/coreconnector/command/SpigotCommandHandler.java b/spigot/src/main/java/com/sekwah/advancedportals/spigot/coreconnector/command/SpigotCommandHandler.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/spigot/coreconnector/command/SpigotCommandHandler.java rename to spigot/src/main/java/com/sekwah/advancedportals/spigot/coreconnector/command/SpigotCommandHandler.java diff --git a/src/main/java/com/sekwah/advancedportals/spigot/coreconnector/command/SpigotCommandRegister.java b/spigot/src/main/java/com/sekwah/advancedportals/spigot/coreconnector/command/SpigotCommandRegister.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/spigot/coreconnector/command/SpigotCommandRegister.java rename to spigot/src/main/java/com/sekwah/advancedportals/spigot/coreconnector/command/SpigotCommandRegister.java diff --git a/src/main/java/com/sekwah/advancedportals/spigot/coreconnector/container/SpigotCommandSenderContainer.java b/spigot/src/main/java/com/sekwah/advancedportals/spigot/coreconnector/container/SpigotCommandSenderContainer.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/spigot/coreconnector/container/SpigotCommandSenderContainer.java rename to spigot/src/main/java/com/sekwah/advancedportals/spigot/coreconnector/container/SpigotCommandSenderContainer.java diff --git a/src/main/java/com/sekwah/advancedportals/spigot/coreconnector/container/SpigotPlayerContainer.java b/spigot/src/main/java/com/sekwah/advancedportals/spigot/coreconnector/container/SpigotPlayerContainer.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/spigot/coreconnector/container/SpigotPlayerContainer.java rename to spigot/src/main/java/com/sekwah/advancedportals/spigot/coreconnector/container/SpigotPlayerContainer.java diff --git a/src/main/java/com/sekwah/advancedportals/spigot/coreconnector/container/SpigotWorldContainer.java b/spigot/src/main/java/com/sekwah/advancedportals/spigot/coreconnector/container/SpigotWorldContainer.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/spigot/coreconnector/container/SpigotWorldContainer.java rename to spigot/src/main/java/com/sekwah/advancedportals/spigot/coreconnector/container/SpigotWorldContainer.java diff --git a/src/main/java/com/sekwah/advancedportals/spigot/coreconnector/info/SpigotDataCollector.java b/spigot/src/main/java/com/sekwah/advancedportals/spigot/coreconnector/info/SpigotDataCollector.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/spigot/coreconnector/info/SpigotDataCollector.java rename to spigot/src/main/java/com/sekwah/advancedportals/spigot/coreconnector/info/SpigotDataCollector.java diff --git a/src/main/java/com/sekwah/advancedportals/spigot/effect/WarpEffectEnder.java b/spigot/src/main/java/com/sekwah/advancedportals/spigot/effect/WarpEffectEnder.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/spigot/effect/WarpEffectEnder.java rename to spigot/src/main/java/com/sekwah/advancedportals/spigot/effect/WarpEffectEnder.java diff --git a/src/main/java/com/sekwah/advancedportals/spigot/metrics/Metrics.java b/spigot/src/main/java/com/sekwah/advancedportals/spigot/metrics/Metrics.java similarity index 100% rename from src/main/java/com/sekwah/advancedportals/spigot/metrics/Metrics.java rename to spigot/src/main/java/com/sekwah/advancedportals/spigot/metrics/Metrics.java diff --git a/spigot/src/main/resources/plugin.yml b/spigot/src/main/resources/plugin.yml new file mode 100644 index 0000000..8375320 --- /dev/null +++ b/spigot/src/main/resources/plugin.yml @@ -0,0 +1,52 @@ +main: com.sekwah.advancedportals.spigot.AdvancedPortalsPlugin +name: AdvancedPortals +version: 1.0.0 +author: sekwah41 +description: An advanced portals plugin for bukkit. +api-version: 1.13 +commands: + portal: + description: The main command for the advanced portals + aliases: [portals, aportals, advancedportals] + usage: / + destination: + description: Can be used to access portal destinations. + aliases: [desti] + usage: / +permissions: + advancedportals.*: + description: Gives access to all commands + default: op + children: + advancedportals.createportal: true + advancedportals.portal: true + advancedportals.build: true + advancedportals.desti: true + advancedportals.createportal: + description: Allows you to create portals + default: op + advancedportals.createportal.commandlevel.*: + description: Gives access to all level raisers + default: false + children: + advancedportals.createportal.commandlevel.op: true + advancedportals.createportal.commandlevel.perms: true + advancedportals.createportal.commandlevel.console: true + advancedportals.createportal.commandlevel.op: + description: Allows you to increase the users level temporaily to op + default: false + advancedportals.createportal.commandlevel.perms: + description: Allows you to increase the users level temporaily to have all perms + default: false + advancedportals.createportal.commandlevel.console: + description: Executes command in the console + default: false + advancedportals.portal: + description: Allows use of portal commands + default: op + advancedportals.build: + description: Allows you to build in the portal regions + default: op + advancedportals.desti: + description: Gives access to all desti commands + default: op diff --git a/src/main/java/com/sekwah/advancedportals/core/registry/Cmd.java b/src/main/java/com/sekwah/advancedportals/core/registry/Cmd.java deleted file mode 100644 index ee1dbef..0000000 --- a/src/main/java/com/sekwah/advancedportals/core/registry/Cmd.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.sekwah.advancedportals.core.registry; - -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; - - -@Retention(RetentionPolicy.RUNTIME) -public @interface Cmd { - String name(); - //TODO Convert to enum - String parentCommand() default ""; - boolean isEnabled() default true; - int minArgs() default 0; - String description() default ""; - String[] permissions() default {}; -} diff --git a/src/main/java/com/sekwah/advancedportals/core/registry/RegisterBuilder.java b/src/main/java/com/sekwah/advancedportals/core/registry/RegisterBuilder.java deleted file mode 100644 index 57e6adf..0000000 --- a/src/main/java/com/sekwah/advancedportals/core/registry/RegisterBuilder.java +++ /dev/null @@ -1,90 +0,0 @@ -package com.sekwah.advancedportals.core.registry; - -import com.google.common.collect.ImmutableSet; -import com.google.common.reflect.ClassPath; - -import java.io.IOException; -import java.lang.reflect.ParameterizedType; -import java.util.HashMap; -import java.util.Map; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -public class RegisterBuilder { - public static RegisterBuilder newBuilder() { - return new RegisterBuilder(); - } - - private RegisterBuilder() { - } - - private boolean allowPermissionInheritance; - private String scanDirectory; - private final Class genericType = (Class) ((ParameterizedType) getClass() - .getGenericSuperclass()).getActualTypeArguments()[0]; - - - public RegisterBuilder inheritPermissions(boolean allowInheritance) { - allowPermissionInheritance = allowInheritance; - return this; - } - - public RegisterBuilder scanDirectory(String directoryName) { - this.scanDirectory = directoryName; - return this; - } - - //TODO I don't know if we want to use this as it is marked as Unstable. - public Registrar build() { - // Table commandMap = HashBasedTable.create(); - Map commandMap = new HashMap<>(); - ImmutableSet classInfo; - final ClassLoader loader = Thread.currentThread().getContextClassLoader(); - - ClassPath classPath = null; - try { - classPath = ClassPath.from(loader); - } catch (IOException e) { - e.printStackTrace(); - } - if (null == scanDirectory || scanDirectory.isEmpty()) { - classInfo = classPath.getTopLevelClasses(scanDirectory); - } else { - classInfo = classPath.getTopLevelClasses(); - } - - //TODO implement blackout of already registered commands. - //TODO If there are duplicates ignore them and throw a warning in console. - Map> commandClasses = classInfo.stream().map(ClassPath.ClassInfo::load) - .filter(t -> t.isAnnotationPresent(Cmd.class)) - .filter(t -> t.isAssignableFrom(genericType)) - .collect(Collectors.toMap(k -> k.getAnnotation(Cmd.class), k -> k)); - - Stream>> result = commandClasses.entrySet().stream(); - - result.filter(c -> c.getKey().parentCommand().equals("")) - .forEach(c -> { - try { - commandMap.put(c.getKey(), (T) c.getValue().newInstance()); - } catch (InstantiationException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - }); - - result.filter(c -> c.getKey().parentCommand() != "") - .forEach(c -> { - try { - commandMap.put(c.getKey(), (T) c.getValue().newInstance()); - } catch (InstantiationException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - }); - return new Registrar<>(allowPermissionInheritance, commandMap); - } - - -} diff --git a/src/main/java/com/sekwah/advancedportals/core/registry/Registrar.java b/src/main/java/com/sekwah/advancedportals/core/registry/Registrar.java deleted file mode 100644 index fe164e8..0000000 --- a/src/main/java/com/sekwah/advancedportals/core/registry/Registrar.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.sekwah.advancedportals.core.registry; - -import com.google.common.collect.ImmutableList; -import com.google.inject.Singleton; -import com.sekwah.advancedportals.core.connector.container.CommandSenderContainer; -import org.bukkit.command.Command; -import org.bukkit.command.CommandExecutor; -import org.bukkit.command.CommandSender; -import org.bukkit.command.TabCompleter; - -import java.util.*; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -@Singleton -public class Registrar implements CommandExecutor, TabCompleter { - //Parent Command, Sub Command, Object - private boolean allowPermissionInheritance; - private Map commandMap = new HashMap<>(); - - protected Registrar(boolean allowPermissionInheritance, Map commandMap) { - this.commandMap = commandMap; - } - - public boolean isAllowPermissionInheritance() { - return allowPermissionInheritance; - } - - public Map getCommandMap() { - return commandMap; - } - - @Override - public boolean onCommand(CommandSender sender, Command command, String label, String[] args) { - Stream> topLevelCommands = commandMap.entrySet().stream() - .filter(c->c.getKey().name().equals(args[0]) || c.getKey().parentCommand().equals(args[0])); - - Optional> results = topLevelCommands.filter(c->c.getKey().name().equals(args[1])).findFirst(); - String[] commands = null; - Map.Entry key = null; - - - if (results.isPresent()) { - args[0] = null; - args[1] = null; - commands = new String[]{args[0], args[1]}; - - key = results.get(); - } else { - commands = new String[]{args[0]}; - key = topLevelCommands - .filter(c->c.getKey().name().equals(args[0]) && c.getKey().parentCommand().equals("")) - .findFirst().get(); - } - - if (args[0].length() >= key.getKey().minArgs()) { - - } else { - commands = new String[]{args[0], args[1]}; - //TODO ???? - key.getValue().onCommandFailure(commands, (CommandSenderContainer) sender, new CommandException(ErrorCode.INSUFFICIENT_ARGUMENTS, ""), - ImmutableList.copyOf(Arrays.asList(args))); - } - return false; - } - - @Override - public List onTabComplete(CommandSender sender, Command command, String alias, String[] args) { - return null; - } -} diff --git a/src/main/java/com/sekwah/advancedportals/core/registry/SubCmd.java b/src/main/java/com/sekwah/advancedportals/core/registry/SubCmd.java deleted file mode 100644 index 49986c7..0000000 --- a/src/main/java/com/sekwah/advancedportals/core/registry/SubCmd.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.sekwah.advancedportals.core.registry; - -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; - -//There is no reason to run a double class file when we can just make the main command default out. -@Deprecated() -@Retention(RetentionPolicy.RUNTIME) -public @interface SubCmd { - - TYPE parent(); - - String name(); - - int minArgs(); - - String[] permissions(); - - public enum TYPE { - PORTAL, - DESTI - } - -}