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