From 3580ea0b2c2050b5a08e455c51c6f0db0b477651 Mon Sep 17 00:00:00 2001
From: Avior <2bazert@gmail.com>
Date: Wed, 5 Sep 2018 20:11:38 +0200
Subject: [PATCH] quick
---
.gitignore | 164 +---------
.gitlab-ci.yml | 60 ++++
.idea/.name | 1 -
.idea/codeStyleSettings.xml | 9 -
.idea/compiler.xml | 18 --
.idea/encodings.xml | 6 -
.idea/kotlinc.xml | 7 -
...oglecode_json_simple_json_simple_1_1_1.xml | 13 -
.../Maven__commons_lang_commons_lang_2_6.xml | 13 -
.idea/libraries/Maven__junit_junit_4_10.xml | 13 -
.../Maven__org_hamcrest_hamcrest_core_1_1.xml | 13 -
.idea/misc.xml | 18 --
.idea/modules.xml | 8 -
.idea/runConfigurations/BetterTP.xml | 27 --
.idea/runConfigurations/Windows_Server.xml | 11 -
.idea/vcs.xml | 6 -
BetterTP.iml | 35 ---
buildNumber.properties | 3 +
dependency-reduced-pom.xml | 139 +++++++++
pom.xml | 194 ++++++------
settings-security.xml | 3 +
settings.xml | 12 +
.../Minecraft/BetterTP/Api/API.java | 19 ++
.../DeltaWings/Minecraft/BetterTP/Charts.java | 32 ++
.../Minecraft/BetterTP/Commands/Bettertp.java | 63 +++-
.../Minecraft/BetterTP/Commands/Home.java | 2 +
.../Minecraft/BetterTP/Commands/Homelist.java | 3 +-
.../Minecraft/BetterTP/Libs/FileManager.java | 89 ++++++
.../DeltaWings/Minecraft/BetterTP/Main.java | 12 +-
.../Minecraft/BetterTP/Metrics.java | 284 ------------------
.../BetterTP/TabCompleter/BettertpTab.java | 9 +-
.../BetterTP/TabCompleter/DelhomeTab.java | 20 ++
.../BetterTP/TabCompleter/HomeTab.java | 19 ++
33 files changed, 592 insertions(+), 733 deletions(-)
create mode 100644 .gitlab-ci.yml
delete mode 100644 .idea/.name
delete mode 100644 .idea/codeStyleSettings.xml
delete mode 100644 .idea/compiler.xml
delete mode 100644 .idea/encodings.xml
delete mode 100644 .idea/kotlinc.xml
delete mode 100644 .idea/libraries/Maven__com_googlecode_json_simple_json_simple_1_1_1.xml
delete mode 100644 .idea/libraries/Maven__commons_lang_commons_lang_2_6.xml
delete mode 100644 .idea/libraries/Maven__junit_junit_4_10.xml
delete mode 100644 .idea/libraries/Maven__org_hamcrest_hamcrest_core_1_1.xml
delete mode 100644 .idea/misc.xml
delete mode 100644 .idea/modules.xml
delete mode 100644 .idea/runConfigurations/BetterTP.xml
delete mode 100644 .idea/runConfigurations/Windows_Server.xml
delete mode 100644 .idea/vcs.xml
delete mode 100644 BetterTP.iml
create mode 100644 buildNumber.properties
create mode 100644 dependency-reduced-pom.xml
create mode 100644 settings-security.xml
create mode 100644 settings.xml
create mode 100644 src/main/java/net/DeltaWings/Minecraft/BetterTP/Api/API.java
create mode 100644 src/main/java/net/DeltaWings/Minecraft/BetterTP/Charts.java
create mode 100644 src/main/java/net/DeltaWings/Minecraft/BetterTP/Libs/FileManager.java
delete mode 100644 src/main/java/net/DeltaWings/Minecraft/BetterTP/Metrics.java
create mode 100644 src/main/java/net/DeltaWings/Minecraft/BetterTP/TabCompleter/DelhomeTab.java
create mode 100644 src/main/java/net/DeltaWings/Minecraft/BetterTP/TabCompleter/HomeTab.java
diff --git a/.gitignore b/.gitignore
index 8e6d769..78e6485 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,159 +1,9 @@
-# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
-# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+#VSCode
+.vscode
-# User-specific stuff:
-.idea/workspace.xml
-.idea/tasks.xml
-
-# Sensitive or high-churn files:
-.idea/dataSources.ids
-.idea/dataSources.xml
-.idea/dataSources.local.xml
-.idea/sqlDataSources.xml
-.idea/dynamic.xml
-.idea/uiDesigner.xml
-
-# Gradle:
-.idea/gradle.xml
-.idea/libraries
-
-# Mongo Explorer plugin:
-.idea/mongoSettings.xml
-
-## File-based project format:
-*.iws
-
-## Plugin-specific files:
-
-# IntelliJ
-/out/
-
-# mpeltonen/sbt-idea plugin
-.idea_modules/
-
-# JIRA plugin
-atlassian-ide-plugin.xml
-
-# Crashlytics plugin (for Android Studio and IntelliJ)
-com_crashlytics_export_strings.xml
-crashlytics.properties
-crashlytics-build.properties
-fabric.properties
-src/test/
+#Java
target/
-/.idea/dictionaries/
-### JetBrains template
-# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
-# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
-
-# User-specific stuff:
-.idea/**/workspace.xml
-.idea/**/tasks.xml
-.idea/dictionaries
-
-# Sensitive or high-churn files:
-.idea/**/dataSources/
-.idea/**/dataSources.ids
-.idea/**/dataSources.xml
-.idea/**/dataSources.local.xml
-.idea/**/sqlDataSources.xml
-.idea/**/dynamic.xml
-.idea/**/uiDesigner.xml
-
-# Gradle:
-.idea/**/gradle.xml
-.idea/**/libraries
-
-# CMake
-cmake-build-debug/
-
-# Mongo Explorer plugin:
-.idea/**/mongoSettings.xml
-
-## File-based project format:
-
-## Plugin-specific files:
-
-# IntelliJ
-out/
-
-# mpeltonen/sbt-idea plugin
-
-# JIRA plugin
-
-# Cursive Clojure plugin
-.idea/replstate.xml
-
-# Crashlytics plugin (for Android Studio and IntelliJ)
-### Maven template
-pom.xml.tag
-pom.xml.releaseBackup
-pom.xml.versionsBackup
-pom.xml.next
-release.properties
-dependency-reduced-pom.xml
-buildNumber.properties
-.mvn/timing.properties
-
-# Avoid ignoring Maven wrapper jar file (.jar files are usually ignored)
-!/.mvn/wrapper/maven-wrapper.jar
-### Linux template
-*~
-
-# temporary files which can be created if a process still has a handle open of a deleted file
-.fuse_hidden*
-
-# KDE directory preferences
-.directory
-
-# Linux trash folder which might appear on any partition or disk
-.Trash-*
-
-# .nfs files are created when an open file is removed but is still being accessed
-.nfs*
-### Windows template
-# Windows thumbnail cache files
-Thumbs.db
-ehthumbs.db
-ehthumbs_vista.db
-
-# Dump file
-*.stackdump
-
-# Folder config file
-Desktop.ini
-
-# Recycle Bin used on file shares
-$RECYCLE.BIN/
-
-# Windows Installer files
-*.cab
-*.msi
-*.msm
-*.msp
-
-# Windows shortcuts
-*.lnk
-### Java template
-# Compiled class file
-*.class
-
-# Log file
-*.log
-
-# BlueJ files
-*.ctxt
-
-# Mobile Tools for Java (J2ME)
-.mtj.tmp/
-
-# Package Files #
-*.jar
-*.war
-*.ear
-*.zip
-*.tar.gz
-*.rar
-
-# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
-hs_err_pid*
+.classpath
+.project
+.settings/
+bin/
\ No newline at end of file
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..46bd39c
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,60 @@
+# This file is a template, and might need editing before it works on your project.
+---
+
+variables:
+ # This will supress any download for dependencies and plugins or upload messages which would clutter the console log.
+ # `showDateTime` will show the passed time in milliseconds. You need to specify `--batch-mode` to make this work.
+ MAVEN_OPTS: "-Dmaven.repo.local=.m2/repository -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
+ # As of Maven 3.3.0 instead of this you may define these options in `.mvn/maven.config` so the same config is used
+ # when running from the command line.
+ # `installAtEnd` and `deployAtEnd` are only effective with recent version of the corresponding plugins.
+ MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true"
+
+# Cache downloaded dependencies and plugins between builds.
+# To keep cache across branches add 'key: "$CI_JOB_REF_NAME"'
+cache:
+ paths:
+ - .m2/repository
+
+# For `master` branch run `mvn deploy` automatically.
+# Here you need to decide whether you want to use JDK7 or 8.
+# To get this working you need to define a volume while configuring your gitlab-ci-multi-runner.
+# Mount your `settings.xml` as `/root/.m2/settings.xml` which holds your secrets.
+# See https://maven.apache.org/settings.html
+Build:
+ # Use stage test here, so the pages job may later pickup the created site.
+ stage: build
+ script:
+ - mvn -B clean install
+ - mvn -B test
+ # Archive up the built documentation site.
+ artifacts:
+ paths:
+ - target/
+ image: maven
+
+Test:
+ # Use stage test here, so the pages job may later pickup the created site.
+ stage: test
+ script:
+ - mvn -B test
+ # Archive up the built documentation site.
+ artifacts:
+ paths:
+ - target/
+ image: maven
+
+Deploy:
+ # Use stage test here, so the pages job may later pickup the created site.
+ stage: deploy
+ script:
+ - cp ./settings-security.xml $HOME/.m2/settings-security.xml
+ - cp ./settings.xml $HOME/.m2/settings.xml
+ - mvn -B deploy
+ only:
+ - tags
+ # Archive up the built documentation site.
+ artifacts:
+ paths:
+ - target
+ image: maven
diff --git a/.idea/.name b/.idea/.name
deleted file mode 100644
index 991d088..0000000
--- a/.idea/.name
+++ /dev/null
@@ -1 +0,0 @@
-BetterTP
\ No newline at end of file
diff --git a/.idea/codeStyleSettings.xml b/.idea/codeStyleSettings.xml
deleted file mode 100644
index 5555dd2..0000000
--- a/.idea/codeStyleSettings.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
deleted file mode 100644
index 419d939..0000000
--- a/.idea/compiler.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
deleted file mode 100644
index b26911b..0000000
--- a/.idea/encodings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml
deleted file mode 100644
index 1c24f9a..0000000
--- a/.idea/kotlinc.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__com_googlecode_json_simple_json_simple_1_1_1.xml b/.idea/libraries/Maven__com_googlecode_json_simple_json_simple_1_1_1.xml
deleted file mode 100644
index f3f3738..0000000
--- a/.idea/libraries/Maven__com_googlecode_json_simple_json_simple_1_1_1.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__commons_lang_commons_lang_2_6.xml b/.idea/libraries/Maven__commons_lang_commons_lang_2_6.xml
deleted file mode 100644
index 2ec8376..0000000
--- a/.idea/libraries/Maven__commons_lang_commons_lang_2_6.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__junit_junit_4_10.xml b/.idea/libraries/Maven__junit_junit_4_10.xml
deleted file mode 100644
index ed8bf5f..0000000
--- a/.idea/libraries/Maven__junit_junit_4_10.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_1.xml b/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_1.xml
deleted file mode 100644
index acdf443..0000000
--- a/.idea/libraries/Maven__org_hamcrest_hamcrest_core_1_1.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index 8b5c9a3..0000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index 7ddb7d9..0000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/runConfigurations/BetterTP.xml b/.idea/runConfigurations/BetterTP.xml
deleted file mode 100644
index 9d15b4f..0000000
--- a/.idea/runConfigurations/BetterTP.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/runConfigurations/Windows_Server.xml b/.idea/runConfigurations/Windows_Server.xml
deleted file mode 100644
index 7d51cc1..0000000
--- a/.idea/runConfigurations/Windows_Server.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 35eb1dd..0000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/BetterTP.iml b/BetterTP.iml
deleted file mode 100644
index b4374a5..0000000
--- a/BetterTP.iml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-
-
-
- SPIGOT
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/buildNumber.properties b/buildNumber.properties
new file mode 100644
index 0000000..d785c61
--- /dev/null
+++ b/buildNumber.properties
@@ -0,0 +1,3 @@
+#maven.buildNumber.plugin properties file
+#Wed Aug 29 23:55:34 CEST 2018
+buildNumber=8
diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml
new file mode 100644
index 0000000..d72fbf0
--- /dev/null
+++ b/dependency-reduced-pom.xml
@@ -0,0 +1,139 @@
+
+
+ 4.0.0
+ net.DeltaWings
+ BetterTP
+ BetterTP
+ 1.0.0
+ The best teleportation plugin
+ https://delta-wings.net/
+
+
+
+ org.apache.maven.wagon
+ wagon-ftp
+ 1.0-beta-6
+
+
+ clean package
+
+
+ true
+ src/main/resources
+
+
+ ${project.name}
+
+
+ maven-compiler-plugin
+ 3.1
+
+ 1.8
+ 1.8
+
+
+
+ maven-shade-plugin
+ 3.1.1
+
+
+ package
+
+ shade
+
+
+
+
+ true
+
+
+ org.bstats
+ net.DeltaWings.Minecraft.BetterTP.Libs
+
+
+
+
+
+
+
+
+ spigotmc-repo
+ https://hub.spigotmc.org/nexus/content/groups/public/
+
+
+ bstats-repo
+ http://repo.bstats.org/content/repositories/releases/
+
+
+
+
+ org.spigotmc
+ spigot-api
+ 1.13.1-R0.1-SNAPSHOT
+ provided
+
+
+ commons-lang
+ commons-lang
+
+
+ json-simple
+ com.googlecode.json-simple
+
+
+ guava
+ com.google.guava
+
+
+ gson
+ com.google.code.gson
+
+
+ snakeyaml
+ org.yaml
+
+
+ bungeecord-chat
+ net.md-5
+
+
+
+
+ org.bukkit
+ bukkit
+ 1.13.1-R0.1-SNAPSHOT
+ provided
+
+
+ commons-lang
+ commons-lang
+
+
+ json-simple
+ com.googlecode.json-simple
+
+
+ guava
+ com.google.guava
+
+
+ gson
+ com.google.code.gson
+
+
+ snakeyaml
+ org.yaml
+
+
+
+
+
+
+ ftp-repository
+ ftp://***REMOVED***/files/m2/
+
+
+
+ UTF-8
+
+
diff --git a/pom.xml b/pom.xml
index af96b41..8637eb6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,95 +1,115 @@
- 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">
+ 4.0.0
- Delta-Wings
- BetterTP
- BetterTP
- 1.0.0
- jar
- The best teleportation plugin
- https://delta-wings.net/
+ net.DeltaWings
+ BetterTP
-
- UTF-8
-
-
- scm:svn:http://127.0.0.1/dummy
- scm:svn:https://127.0.0.1/dummy
- HEAD
- http://127.0.0.1/dummy
-
-
- ${project.artifactId}-${project.version}
- clean package
-
-
- 3.1
- org.apache.maven.plugins
- maven-compiler-plugin
-
- 1.8
- 1.8
+ BetterTP
+ 1.0.0
+ The best teleportation plugin
+ https://delta-wings.net/
-
-
-
- org.codehaus.mojo
- buildnumber-maven-plugin
- 1.4
-
-
- buildnumber
- validate
-
- create
-
-
-
-
- {0,number}
-
- - buildNumber
-
- false
- false
- unknownbuild
-
-
-
-
-
- src/main/resources
- true
-
-
-
+ jar
-
-
- spigotmc-repo
- https://hub.spigotmc.org/nexus/content/groups/public/
-
-
- sonatype
- https://oss.sonatype.org/content/groups/public/
-
-
+
+ UTF-8
+
-
-
- org.spigotmc
- spigot-api
- 1.12-R0.1-SNAPSHOT
- provided
-
-
- org.bukkit
- bukkit
- 1.12-R0.1-SNAPSHOT
- provided
-
-
+
+
+ ftp-repository
+ ftp://***REMOVED***/files/m2/
+
+
+
+
+ ${project.name}
+ clean package
+
+
+ org.apache.maven.wagon
+ wagon-ftp
+ 1.0-beta-6
+
+
+
+
+ 3.1
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 1.8
+ 1.8
+
+
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 3.1.1
+
+ true
+
+
+ org.bstats
+ net.DeltaWings.Minecraft.BetterTP.Libs
+
+
+
+
+
+ package
+
+ shade
+
+
+
+
+
+
+
+
+ src/main/resources
+ true
+
+
+
+
+
+
+ spigotmc-repo
+ https://hub.spigotmc.org/nexus/content/groups/public/
+
+
+
+ bstats-repo
+ http://repo.bstats.org/content/repositories/releases/
+
+
+
+
+
+ org.spigotmc
+ spigot-api
+ 1.13.1-R0.1-SNAPSHOT
+ provided
+
+
+
+ org.bukkit
+ bukkit
+ 1.13.1-R0.1-SNAPSHOT
+ provided
+
+
+
+ org.bstats
+ bstats-bukkit
+ 1.2
+ compile
+
+
\ No newline at end of file
diff --git a/settings-security.xml b/settings-security.xml
new file mode 100644
index 0000000..b0d6082
--- /dev/null
+++ b/settings-security.xml
@@ -0,0 +1,3 @@
+
+ {***REMOVED***}
+
\ No newline at end of file
diff --git a/settings.xml b/settings.xml
new file mode 100644
index 0000000..cb9f520
--- /dev/null
+++ b/settings.xml
@@ -0,0 +1,12 @@
+
+
+
+
+ ftp-repository
+ deltawinbo
+ {***REMOVED***}
+
+
+
\ No newline at end of file
diff --git a/src/main/java/net/DeltaWings/Minecraft/BetterTP/Api/API.java b/src/main/java/net/DeltaWings/Minecraft/BetterTP/Api/API.java
new file mode 100644
index 0000000..d745aa1
--- /dev/null
+++ b/src/main/java/net/DeltaWings/Minecraft/BetterTP/Api/API.java
@@ -0,0 +1,19 @@
+package net.DeltaWings.Minecraft.BetterTP.Api;
+
+import java.util.ArrayList;
+
+import net.DeltaWings.Minecraft.BetterTP.Libs.Config;
+
+/**
+ * API
+ */
+public class API {
+
+ public static ArrayList homelist(String player) {
+ Config c = new Config("data", player);
+ if(c.exist()) {
+ return c.getSection("");
+ }
+ return new ArrayList<>();
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/net/DeltaWings/Minecraft/BetterTP/Charts.java b/src/main/java/net/DeltaWings/Minecraft/BetterTP/Charts.java
new file mode 100644
index 0000000..226bab8
--- /dev/null
+++ b/src/main/java/net/DeltaWings/Minecraft/BetterTP/Charts.java
@@ -0,0 +1,32 @@
+package net.DeltaWings.Minecraft.BetterTP;
+
+import java.io.File;
+import java.util.concurrent.Callable;
+
+import org.bstats.bukkit.Metrics;
+
+import net.DeltaWings.Minecraft.BetterTP.Libs.Config;
+import net.DeltaWings.Minecraft.BetterTP.Libs.FileManager;
+
+public class Charts {
+
+ private Main i = Main.getInstance();
+ private String j = File.separator;
+ private final File d = new File(i.getDataFolder() + j + "data");
+
+ public Charts(Metrics metrics) {
+
+ metrics.addCustomChart(new Metrics.SingleLineChart("home_number", new Callable(){
+
+ @Override
+ public Integer call() throws Exception {
+ Integer result = 0;
+ for (String conf : FileManager.listFiles(d)) {
+ Config c = new Config("data", conf);
+ result += c.getSection("").size();
+ }
+ return result;
+ }
+ }));
+ }
+}
diff --git a/src/main/java/net/DeltaWings/Minecraft/BetterTP/Commands/Bettertp.java b/src/main/java/net/DeltaWings/Minecraft/BetterTP/Commands/Bettertp.java
index ac550ee..2487438 100644
--- a/src/main/java/net/DeltaWings/Minecraft/BetterTP/Commands/Bettertp.java
+++ b/src/main/java/net/DeltaWings/Minecraft/BetterTP/Commands/Bettertp.java
@@ -1,7 +1,9 @@
package net.DeltaWings.Minecraft.BetterTP.Commands;
+import net.DeltaWings.Minecraft.BetterTP.Api.API;
import net.DeltaWings.Minecraft.BetterTP.Libs.Config;
+import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
@@ -12,13 +14,23 @@ import java.io.IOException;
public class Bettertp implements CommandExecutor {
+ Config m = new Config("", "messages");
+
@Override
public boolean onCommand(CommandSender s, Command unu2, String unu1, String[] a) {
- Config m = new Config("", "messages");
+
Config g = new Config("", "config");
if(s instanceof Player && s.hasPermission("bettertp.admin")) {
Player p = (Player) s;
- if(a.length == 2) {
+ if((a.length == 2 || a.length == 3) && a[0].equalsIgnoreCase("home")) {
+ if(a.length == 2) home(s, a[1], "home");
+ else home(s, a[1], a[2]);
+ } else if((a.length == 2 || a.length == 3) && a[0].equalsIgnoreCase("delhome")) {
+ if(a.length == 2) delhome(s, a[1], "home");
+ else delhome(s, a[1], a[2]);
+ } else if(a.length == 2 && a[0].equalsIgnoreCase("homelist")) {
+ homelist(s, a[1]);
+ } else if(a.length == 2) {
if(a[0].equalsIgnoreCase("set")) {
if(a[1].equalsIgnoreCase("spawn")) {
Config c = null;
@@ -98,4 +110,51 @@ public class Bettertp implements CommandExecutor {
}
return false;
}
+
+
+
+
+
+ private void set() {
+
+ }
+
+ private void help() {
+
+ }
+
+ private void home(CommandSender s, String player, String home) {
+ Config cp = new Config("data", player);
+ if(cp.exist()) {
+ String t = home+".";
+ ((Player) s).teleport(new Location(Bukkit.getServer().getWorld(cp.getString(t+"world")), cp.getDouble(t+"x"), cp.getDouble(t+"y"), cp.getDouble(t+"z")));
+ }
+ ((Player) s).sendMessage("Sended you to " + player + " home : " + home);
+ }
+
+ private void delhome(CommandSender s, String player, String home) {
+ Config cp = new Config("data", player);
+ if(cp.exist() && cp.isSet(home)) {
+ cp.set(home, null);
+ try {
+ cp.save();
+ } catch ( IOException e ) {
+ e.printStackTrace();
+ s.sendMessage("Error, Please call an Admin !");
+ }
+ s.sendMessage(m.getString("home.deleted").replace("[home]", home).replace("&", "§"));
+ }
+ }
+
+ private void homelist(CommandSender s, String player) {
+ Config c = new Config("", "messages");
+ s.sendMessage(c.getString("help.top").replace("[help]", "Homelist").replace("&", "§"));
+ for(String a : API.homelist(s.getName())) {
+ s.sendMessage(("&4| &9").replace("&", "§") + a);
+ }
+ s.sendMessage(c.getString("help.bottom").replace("[help]", "Homelist").replace("&", "§"));
+
+ }
}
+
+
diff --git a/src/main/java/net/DeltaWings/Minecraft/BetterTP/Commands/Home.java b/src/main/java/net/DeltaWings/Minecraft/BetterTP/Commands/Home.java
index 677876e..e5cdcb4 100644
--- a/src/main/java/net/DeltaWings/Minecraft/BetterTP/Commands/Home.java
+++ b/src/main/java/net/DeltaWings/Minecraft/BetterTP/Commands/Home.java
@@ -53,3 +53,5 @@ public class Home implements CommandExecutor {
return false;
}
}
+
+// /home [home]
\ No newline at end of file
diff --git a/src/main/java/net/DeltaWings/Minecraft/BetterTP/Commands/Homelist.java b/src/main/java/net/DeltaWings/Minecraft/BetterTP/Commands/Homelist.java
index a1b7628..51e91ba 100644
--- a/src/main/java/net/DeltaWings/Minecraft/BetterTP/Commands/Homelist.java
+++ b/src/main/java/net/DeltaWings/Minecraft/BetterTP/Commands/Homelist.java
@@ -1,6 +1,7 @@
package net.DeltaWings.Minecraft.BetterTP.Commands;
import net.DeltaWings.Minecraft.BetterTP.Libs.Config;
+import net.DeltaWings.Minecraft.BetterTP.Api.API;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
@@ -13,7 +14,7 @@ public class Homelist implements CommandExecutor {
if(s instanceof Player) {
Config c = new Config("", "messages");
s.sendMessage(c.getString("help.top").replace("[help]", "Homelist").replace("&", "§"));
- for(String a : new Config("data", s.getName()).getSection("")) {
+ for(String a : API.homelist(s.getName())) {
s.sendMessage(("&4| &9").replace("&", "§") + a);
}
s.sendMessage(c.getString("help.bottom").replace("[help]", "Homelist").replace("&", "§"));
diff --git a/src/main/java/net/DeltaWings/Minecraft/BetterTP/Libs/FileManager.java b/src/main/java/net/DeltaWings/Minecraft/BetterTP/Libs/FileManager.java
new file mode 100644
index 0000000..631fcc9
--- /dev/null
+++ b/src/main/java/net/DeltaWings/Minecraft/BetterTP/Libs/FileManager.java
@@ -0,0 +1,89 @@
+package net.DeltaWings.Minecraft.BetterTP.Libs;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipOutputStream;
+
+public class FileManager {
+
+
+ public static List listFiles(String path) {
+ String[] t = new File(path).list();
+ if(t == null) return new ArrayList<>();
+ else return Arrays.asList(t);
+ }
+
+ public static List listFiles(File path) {
+ String[] t = path.list();
+ if(t == null) return new ArrayList<>();
+ else return Arrays.asList(t);
+ }
+
+ public static void delete(File path) {
+ path.delete();
+ }
+
+ public static void delete(String path) {
+ File f = new File(path);
+ f.delete();
+ }
+
+ public static void createFile(String path) {
+ try {
+ new File(path).createNewFile();
+ } catch ( IOException e ) {
+ e.printStackTrace();
+ }
+ }
+
+ public static void createFile(File path) {
+ try {
+ path.createNewFile();
+ } catch ( IOException e ) {
+ e.printStackTrace();
+ }
+ }
+
+ public static void createFolder(File path) {
+ path.mkdirs();
+ }
+
+ public static void createFolder(String path) {
+ new File(path).mkdirs();
+ }
+
+ public static void archive(String srcFolder, String destZipFile) {
+ try {
+ FileOutputStream f = new FileOutputStream(destZipFile);
+ ZipOutputStream z = new ZipOutputStream(f);
+ b(srcFolder, z);
+ z.close();
+ } catch ( Exception e ) {
+ e.printStackTrace();
+ }
+ }
+
+ private static void a(String p, String s, ZipOutputStream z) throws Exception {
+ File f = new File(s);
+ if (f.isDirectory()) b(s, z);
+ else {
+ byte[] b = new byte[1024];
+ int l;
+ FileInputStream i = new FileInputStream(s);
+ z.putNextEntry(new ZipEntry(p + "/" + f.getName()));
+ while ((l = i.read(b)) > 0) z.write(b, 0, l);
+ }
+ }
+
+ private static void b(String s, ZipOutputStream z) throws Exception {
+ File f = new File(s);
+ String[] l = f.list();
+ if(l != null) for (String n : l) a(f.getName(), s + File.separator + n, z);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/net/DeltaWings/Minecraft/BetterTP/Main.java b/src/main/java/net/DeltaWings/Minecraft/BetterTP/Main.java
index 4d6f394..2fbeed8 100644
--- a/src/main/java/net/DeltaWings/Minecraft/BetterTP/Main.java
+++ b/src/main/java/net/DeltaWings/Minecraft/BetterTP/Main.java
@@ -8,6 +8,8 @@ import org.bukkit.command.PluginCommand;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
+import org.bstats.bukkit.Metrics;
+
import java.io.IOException;
import java.util.logging.Level;
@@ -36,6 +38,8 @@ public final class Main extends JavaPlugin {
debug("Loading Variables");
PluginManager pm = getServer().getPluginManager();
PluginCommand bettertp = getCommand("Bettertp");
+ PluginCommand home = getCommand("Home");
+ PluginCommand delhome = getCommand("Delhome");
debug("Loaded variables");
debug("Loading Configuration");
@@ -59,15 +63,17 @@ public final class Main extends JavaPlugin {
bettertp.setTabCompleter(new BettertpTab());
getCommand("Spawn").setExecutor(new Spawn());
getCommand("Lobby").setExecutor(new Lobby());
- getCommand("Home").setExecutor(new Home());
+ home.setExecutor(new Home());
+ home.setTabCompleter(new HomeTab());
getCommand("Sethome").setExecutor(new Sethome());
- getCommand("Delhome").setExecutor(new Delhome());
+ delhome.setExecutor(new Delhome());
+ delhome.setTabCompleter(new DelhomeTab());
getCommand("Homelist").setExecutor(new Homelist());
debug("Loaded Commands");
debug("Enabling Metrics");
- //new Metrics(this);
+ new Charts(new Metrics(this));
log("Metrics Started : https://bstats.org/plugin/bukkit/plugin/");
log("Loaded !");
diff --git a/src/main/java/net/DeltaWings/Minecraft/BetterTP/Metrics.java b/src/main/java/net/DeltaWings/Minecraft/BetterTP/Metrics.java
deleted file mode 100644
index 44afacb..0000000
--- a/src/main/java/net/DeltaWings/Minecraft/BetterTP/Metrics.java
+++ /dev/null
@@ -1,284 +0,0 @@
-package net.DeltaWings.Minecraft.BetterTP;
-
-import org.bukkit.Bukkit;
-import org.bukkit.configuration.file.YamlConfiguration;
-import org.bukkit.plugin.ServicePriority;
-import org.bukkit.plugin.java.JavaPlugin;
-import org.json.simple.JSONArray;
-import org.json.simple.JSONObject;
-
-import javax.net.ssl.HttpsURLConnection;
-import java.io.ByteArrayOutputStream;
-import java.io.DataOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.lang.reflect.InvocationTargetException;
-import java.net.URL;
-import java.util.Timer;
-import java.util.TimerTask;
-import java.util.UUID;
-import java.util.logging.Level;
-import java.util.zip.GZIPOutputStream;
-
-/**
- * bStats collects some data for plugin authors.
- *
- * Check out https://bStats.org/ to learn more about bStats!
- */
-public class Metrics {
-
- static {
- // Maven's Relocate is clever and changes strings, too. So we have to use this little "trick" ... :D
- final String defaultPackage = new String(new byte[] { 'o', 'r', 'g', '.', 'b', 's', 't', 'a', 't', 's' });
- final String examplePackage = new String(new byte[] { 'y', 'o', 'u', 'r', '.', 'p', 'a', 'c', 'k', 'a', 'g', 'e' });
- // We want to make sure nobody just copy & pastes the example and use the wrong package names
- if (Metrics.class.getPackage().getName().equals(defaultPackage) || Metrics.class.getPackage().getName().equals(examplePackage)) {
- throw new IllegalStateException("bStats Metrics class has not been relocated correctly!");
- }
- }
-
- // The version of this bStats class
- public static final int B_STATS_VERSION = 1;
-
- // The url to which the data is sent
- private static final String URL = "https://bStats.org/submitData/bukkit";
-
- // Should failed requests be logged?
- private static boolean logFailedRequests;
-
- // The uuid of the server
- private static String serverUUID;
-
- // The plugin
- private final JavaPlugin plugin;
-
- /**
- * Class constructor.
- *
- * @param plugin The plugin which stats should be submitted.
- */
- public Metrics(JavaPlugin plugin) {
- if (plugin == null) {
- throw new IllegalArgumentException("Plugin cannot be null!");
- }
- this.plugin = plugin;
-
- // Get the config file
- File bStatsFolder = new File(plugin.getDataFolder().getParentFile(), "bStats");
- File configFile = new File(bStatsFolder, "config.yml");
- YamlConfiguration config = YamlConfiguration.loadConfiguration(configFile);
-
- // Check if the config file exists
- if (!config.isSet("serverUuid")) {
-
- // Add default values
- config.addDefault("enabled", true);
- // Every server gets it's unique random id.
- config.addDefault("serverUuid", UUID.randomUUID().toString());
- // Should failed request be logged?
- config.addDefault("logFailedRequests", false);
-
- // Inform the server owners about bStats
- config.options().header(
- "bStats collects some data for plugin authors like how many servers are using their plugins.\n" +
- "To honor their work, you should not disable it.\n" +
- "This has nearly no effect on the server performance!\n" +
- "Check out https://bStats.org/ to learn more :)"
- ).copyDefaults(true);
- try {
- config.save(configFile);
- } catch (IOException ignored) { }
- }
-
- // Load the data
- serverUUID = config.getString("serverUuid");
- logFailedRequests = config.getBoolean("logFailedRequests", false);
- if (config.getBoolean("enabled", true)) {
- boolean found = false;
- // Search for all other bStats Metrics classes to see if we are the first one
- for (Class> service : Bukkit.getServicesManager().getKnownServices()) {
- try {
- service.getField("B_STATS_VERSION"); // Our identifier :)
- found = true; // We aren't the first
- break;
- } catch (NoSuchFieldException ignored) { }
- }
- // Register our service
- Bukkit.getServicesManager().register(Metrics.class, this, plugin, ServicePriority.Normal);
- if (!found) {
- // We are the first!
- startSubmitting();
- }
- }
- }
-
- /**
- * Starts the Scheduler which submits our data every 30 minutes.
- */
- private void startSubmitting() {
- final Timer timer = new Timer(true); // We use a timer cause the Bukkit scheduler is affected by server lags
- timer.scheduleAtFixedRate(new TimerTask() {
- @Override
- public void run() {
- if (!plugin.isEnabled()) { // Plugin was disabled
- timer.cancel();
- return;
- }
- // Nevertheless we want our code to run in the Bukkit main thread, so we have to use the Bukkit scheduler
- // Don't be afraid! The connection to the bStats server is still async, only the stats collection is sync ;)
- Bukkit.getScheduler().runTask(plugin, () -> submitData());
- }
- }, 1000*60*5, 1000*60*30);
- // Submit the data every 30 minutes, first time after 5 minutes to give other plugins enough time to start
- // WARNING: Changing the frequency has no effect but your plugin WILL be blocked/deleted!
- // WARNING: Just don't do it!
- }
-
- /**
- * Gets the plugin specific data.
- * This method is called using Reflection.
- *
- * @return The plugin specific data.
- */
- public JSONObject getPluginData() {
- JSONObject data = new JSONObject();
-
- String pluginName = plugin.getDescription().getName();
- String pluginVersion = plugin.getDescription().getVersion();
-
- data.put("pluginName", pluginName); // Append the name of the plugin
- data.put("pluginVersion", pluginVersion); // Append the version of the plugin
- JSONArray customCharts = new JSONArray();
- data.put("customCharts", customCharts);
-
- return data;
- }
-
- /**
- * Gets the server specific data.
- *
- * @return The server specific data.
- */
- private JSONObject getServerData() {
- // Minecraft specific data
- int playerAmount = Bukkit.getOnlinePlayers().size();
- int onlineMode = Bukkit.getOnlineMode() ? 1 : 0;
- String bukkitVersion = Bukkit.getVersion();
- bukkitVersion = bukkitVersion.substring(bukkitVersion.indexOf("MC: ") + 4, bukkitVersion.length() - 1);
-
- // OS/Java specific data
- String javaVersion = System.getProperty("java.version");
- String osName = System.getProperty("os.name");
- String osArch = System.getProperty("os.arch");
- String osVersion = System.getProperty("os.version");
- int coreCount = Runtime.getRuntime().availableProcessors();
-
- JSONObject data = new JSONObject();
-
- data.put("serverUUID", serverUUID);
-
- data.put("playerAmount", playerAmount);
- data.put("onlineMode", onlineMode);
- data.put("bukkitVersion", bukkitVersion);
-
- data.put("javaVersion", javaVersion);
- data.put("osName", osName);
- data.put("osArch", osArch);
- data.put("osVersion", osVersion);
- data.put("coreCount", coreCount);
-
- return data;
- }
-
- /**
- * Collects the data and sends it afterwards.
- */
- private void submitData() {
- final JSONObject data = getServerData();
-
- JSONArray pluginData = new JSONArray();
- // Search for all other bStats Metrics classes to get their plugin data
- for (Class> service : Bukkit.getServicesManager().getKnownServices()) {
- try {
- service.getField("B_STATS_VERSION"); // Our identifier :)
- } catch (NoSuchFieldException ignored) {
- continue; // Continue "searching"
- }
- // Found one!
- try {
- pluginData.add(service.getMethod("getPluginData").invoke(Bukkit.getServicesManager().load(service)));
- } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException ignored) { }
- }
-
- data.put("plugins", pluginData);
-
- // Create a new thread for the connection to the bStats server
- new Thread(() -> {
- try {
- // Send the data
- sendData(data);
- } catch (Exception e) {
- // Something went wrong! :(
- if (logFailedRequests) {
- plugin.getLogger().log(Level.WARNING, "Could not submit plugin stats of " + plugin.getName(), e);
- }
- }
- }).start();
- }
-
- /**
- * Sends the data to the bStats server.
- *
- * @param data The data to send.
- * @throws Exception If the request failed.
- */
- private static void sendData(JSONObject data) throws Exception {
- if (data == null) {
- throw new IllegalArgumentException("Data cannot be null!");
- }
- if (Bukkit.isPrimaryThread()) {
- throw new IllegalAccessException("This method must not be called from the main thread!");
- }
- HttpsURLConnection connection = (HttpsURLConnection) new URL(URL).openConnection();
-
- // Compress the data to save bandwidth
- byte[] compressedData = compress(data.toString());
-
- // Add headers
- connection.setRequestMethod("POST");
- connection.addRequestProperty("Accept", "application/json");
- connection.addRequestProperty("Connection", "close");
- connection.addRequestProperty("Content-Encoding", "gzip"); // We gzip our request
- connection.addRequestProperty("Content-Length", String.valueOf(compressedData.length));
- connection.setRequestProperty("Content-Type", "application/json"); // We send our data in JSON format
- connection.setRequestProperty("User-Agent", "MC-Server/" + B_STATS_VERSION);
-
- // Send data
- connection.setDoOutput(true);
- DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream());
- outputStream.write(compressedData);
- outputStream.flush();
- outputStream.close();
-
- connection.getInputStream().close(); // We don't care about the response - Just send our data :)
- }
-
- /**
- * Gzips the given String.
- *
- * @param str The string to gzip.
- * @return The gzipped String.
- * @throws IOException If the compression failed.
- */
- private static byte[] compress(final String str) throws IOException {
- if (str == null) {
- return null;
- }
- ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
- GZIPOutputStream gzip = new GZIPOutputStream(outputStream);
- gzip.write(str.getBytes("UTF-8"));
- gzip.close();
- return outputStream.toByteArray();
- }
-
-}
\ No newline at end of file
diff --git a/src/main/java/net/DeltaWings/Minecraft/BetterTP/TabCompleter/BettertpTab.java b/src/main/java/net/DeltaWings/Minecraft/BetterTP/TabCompleter/BettertpTab.java
index 84cf052..231a880 100644
--- a/src/main/java/net/DeltaWings/Minecraft/BetterTP/TabCompleter/BettertpTab.java
+++ b/src/main/java/net/DeltaWings/Minecraft/BetterTP/TabCompleter/BettertpTab.java
@@ -1,6 +1,9 @@
package net.DeltaWings.Minecraft.BetterTP.TabCompleter;
import net.DeltaWings.Minecraft.BetterTP.Main;
+import net.DeltaWings.Minecraft.BetterTP.Api.API;
+import net.DeltaWings.Minecraft.BetterTP.Libs.Config;
+
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.command.TabCompleter;
@@ -11,7 +14,7 @@ import java.util.List;
public class BettertpTab implements TabCompleter {
- private final String[] menu = new String[]{"set", "del", "delete", "help", "config"}, setdel = new String[]{"spawn","lobby"}, confopt = new String[]{""};
+ private final String[] menu = new String[]{"set", "del", "delete", "help", "home", "delhome"}, setdel = new String[]{"spawn","lobby"}, confopt = new String[]{""};
@Override
public List onTabComplete(CommandSender s, Command c, String unused, String[] a) {
@@ -36,6 +39,10 @@ public class BettertpTab implements TabCompleter {
for (String t : y) if (t.startsWith(a[1].toLowerCase())) l.add(t);
return l;
} else return Arrays.asList(y);
+ } else if(a.length == 3) {
+ if(a[0].equalsIgnoreCase("home") || a[0].equalsIgnoreCase("delhome")) {
+ return API.homelist(a[1]);
+ }
}
return null;
}
diff --git a/src/main/java/net/DeltaWings/Minecraft/BetterTP/TabCompleter/DelhomeTab.java b/src/main/java/net/DeltaWings/Minecraft/BetterTP/TabCompleter/DelhomeTab.java
new file mode 100644
index 0000000..47671a3
--- /dev/null
+++ b/src/main/java/net/DeltaWings/Minecraft/BetterTP/TabCompleter/DelhomeTab.java
@@ -0,0 +1,20 @@
+package net.DeltaWings.Minecraft.BetterTP.TabCompleter;
+
+import net.DeltaWings.Minecraft.BetterTP.Libs.Config;
+
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandSender;
+import org.bukkit.command.TabCompleter;
+
+import java.util.List;
+
+public class DelhomeTab implements TabCompleter {
+
+ @Override
+ public List onTabComplete(CommandSender s, Command u1, String unused, String[] a) {
+ if( a.length == 1) {
+ Config c = new Config("data", s.getName());
+ return c.getSection("");
+ } else return null;
+ }
+}
diff --git a/src/main/java/net/DeltaWings/Minecraft/BetterTP/TabCompleter/HomeTab.java b/src/main/java/net/DeltaWings/Minecraft/BetterTP/TabCompleter/HomeTab.java
new file mode 100644
index 0000000..df61376
--- /dev/null
+++ b/src/main/java/net/DeltaWings/Minecraft/BetterTP/TabCompleter/HomeTab.java
@@ -0,0 +1,19 @@
+package net.DeltaWings.Minecraft.BetterTP.TabCompleter;
+
+import net.DeltaWings.Minecraft.BetterTP.Api.API;
+
+import org.bukkit.command.Command;
+import org.bukkit.command.CommandSender;
+import org.bukkit.command.TabCompleter;
+
+import java.util.List;
+
+public class HomeTab implements TabCompleter {
+
+ @Override
+ public List onTabComplete(CommandSender s, Command u1, String unused, String[] a) {
+ if( a.length == 1) {
+ return API.homelist(s.getName());
+ } else return null;
+ }
+}