diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e4d1d4e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,174 @@
+# Created by https://www.gitignore.io/api/java,maven,intellij,intellij+iml,intellij+all
+
+### Intellij ###
+# 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:
+*.iws
+
+## Plugin-specific files:
+
+# IntelliJ
+/out/
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Cursive Clojure plugin
+.idea/replstate.xml
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
+
+### Intellij Patch ###
+# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
+
+# *.iml
+# modules.xml
+# .idea/misc.xml
+# *.ipr
+
+# Sonarlint plugin
+.idea/sonarlint
+
+### Intellij+all ###
+# 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:
+
+# Sensitive or high-churn files:
+
+# Gradle:
+
+# CMake
+
+# Mongo Explorer plugin:
+
+## File-based project format:
+
+## Plugin-specific files:
+
+# IntelliJ
+
+# mpeltonen/sbt-idea plugin
+
+# JIRA plugin
+
+# Cursive Clojure plugin
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+
+### Intellij+all Patch ###
+# Ignores the whole idea folder
+# See https://github.com/joeblau/gitignore.io/issues/186 and https://github.com/joeblau/gitignore.io/issues/360
+
+.idea/
+
+### Intellij+iml ###
+# 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:
+
+# Sensitive or high-churn files:
+
+# Gradle:
+
+# CMake
+
+# Mongo Explorer plugin:
+
+## File-based project format:
+
+## Plugin-specific files:
+
+# IntelliJ
+
+# mpeltonen/sbt-idea plugin
+
+# JIRA plugin
+
+# Cursive Clojure plugin
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+
+### Intellij+iml Patch ###
+# Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-249601023
+
+*.iml
+modules.xml
+.idea/misc.xml
+*.ipr
+
+### Java ###
+# 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*
+
+# Manifest files
+*.MF
+
+### Maven ###
+target/
+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
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..5828f30
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,38 @@
+
+
+ 4.0.0
+
+ cn.nukkit
+ example-plugin
+ 1.0.0
+ ExamplePlugin
+ An Example Nukkit Plugin
+ https://github.com/CloudburstMC/ExamplePlugin/
+
+
+ UTF-8
+ 1.8
+ 1.8
+
+
+
+
+ nukkitx-repo
+ https://repo.opencollab.dev/maven-snapshots/
+
+
+
+
+
+ cn.nukkit
+ nukkit
+ 1.0-SNAPSHOT
+ provided
+
+
+
+
+ clean package
+
+
diff --git a/src/main/java/ExamplePlugin/BroadcastPluginTask.java b/src/main/java/cn/nukkit/exampleplugin/BroadcastPluginTask.java
similarity index 63%
rename from src/main/java/ExamplePlugin/BroadcastPluginTask.java
rename to src/main/java/cn/nukkit/exampleplugin/BroadcastPluginTask.java
index e26aa88..d2cf517 100644
--- a/src/main/java/ExamplePlugin/BroadcastPluginTask.java
+++ b/src/main/java/cn/nukkit/exampleplugin/BroadcastPluginTask.java
@@ -1,4 +1,4 @@
-package ExamplePlugin;
+package cn.nukkit.exampleplugin;
import cn.nukkit.scheduler.PluginTask;
@@ -6,9 +6,9 @@
* author: MagicDroidX
* ExamplePlugin Project
*/
-public class BroadcastPluginTask extends PluginTask {
+public class BroadcastPluginTask extends PluginTask {
- public BroadcastPluginTask(MainClass owner) {
+ public BroadcastPluginTask(ExamplePlugin owner) {
super(owner);
}
diff --git a/src/main/java/ExamplePlugin/EventListener.java b/src/main/java/cn/nukkit/exampleplugin/EventListener.java
similarity index 83%
rename from src/main/java/ExamplePlugin/EventListener.java
rename to src/main/java/cn/nukkit/exampleplugin/EventListener.java
index 309f229..18c18d7 100644
--- a/src/main/java/ExamplePlugin/EventListener.java
+++ b/src/main/java/cn/nukkit/exampleplugin/EventListener.java
@@ -1,4 +1,4 @@
-package ExamplePlugin;
+package cn.nukkit.exampleplugin;
import cn.nukkit.event.EventHandler;
import cn.nukkit.event.EventPriority;
@@ -10,9 +10,9 @@
* NukkitExamplePlugin Project
*/
public class EventListener implements Listener {
- MainClass plugin;
+ private final ExamplePlugin plugin;
- public EventListener(MainClass plugin) {
+ public EventListener(ExamplePlugin plugin) {
this.plugin = plugin;
}
diff --git a/src/main/java/ExamplePlugin/MainClass.java b/src/main/java/cn/nukkit/exampleplugin/ExamplePlugin.java
similarity index 94%
rename from src/main/java/ExamplePlugin/MainClass.java
rename to src/main/java/cn/nukkit/exampleplugin/ExamplePlugin.java
index 1aaf0a2..0a34b9b 100644
--- a/src/main/java/ExamplePlugin/MainClass.java
+++ b/src/main/java/cn/nukkit/exampleplugin/ExamplePlugin.java
@@ -1,4 +1,4 @@
-package ExamplePlugin;
+package cn.nukkit.exampleplugin;
import cn.nukkit.command.Command;
import cn.nukkit.command.CommandSender;
@@ -15,7 +15,7 @@
* author: MagicDroidX
* NukkitExamplePlugin Project
*/
-public class MainClass extends PluginBase {
+public class ExamplePlugin extends PluginBase {
@Override
public void onLoad() {
@@ -61,7 +61,7 @@ public void onDisable() {
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
- switch (command.getName()) {
+ switch (command.getName().toLowerCase()) {
case "example":
try {
this.getLogger().info(Utils.readFile(new File(this.getDataFolder(), "string.txt")) + " " + sender.getName());
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index 8230d1d..0153b4d 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -1,20 +1,36 @@
#name, main, version and api are required
name: ExamplePlugin
-main: ExamplePlugin.MainClass
+main: cn.nukkit.exampleplugin.ExamplePlugin
#remember version and api is string, don't write it like this: 1.0.0, or there will be an exception
version: "1.0.0"
-api: ["1.0.0"]
-
+api: ["1.0.5"]
load: POSTWORLD
author: Nukkit Project
+# Authors and author will be added together in one list.
+authors: ["Example", "Another"]
description: Example plugin showing the API
-website: https://github.com/Nukkit/ExamplePlugin
+website: https://github.com/NukkitX/ExamplePlugin
+# These dependencies are required for the plugin to start.
+#depend: ["OtherPlugin", "ThisPlugin"]
+# These dependencies are not required.
+softdepend: ["PluginA", "PluginB"]
+# Log prefix in console
+prefix: "Example"
+# Plugin will be loaded before these. Any cyclic loadbefore's or dependencies's will throw errors!
+loadbefore: ["ImportantPlugin"]
+
commands:
example:
description: Example command
usage: "/example"
+ aliases: ["xample", "nukkitexample"]
permission: exampleplugin.command.example
+ permission-message: "You do not have the required permission to run /example"
permissions:
exampleplugin.command.example:
description: "Allows the user to run the example command"
- default: true
\ No newline at end of file
+ default: true
+# children:
+# exampleplugin.command.example.test:
+# description: "Use the test feature in the example command"
+# default: true