diff --git a/.gitignore b/.gitignore index 790d79f..3c61b4f 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,10 @@ java/build/ java/patchbukkit/build/ java/patchbukkit/bin/ +# Examples +examples/*/bin +examples/*/run + # Keep Gradle wrapper !gradle/wrapper/gradle-wrapper.jar !java/gradle/wrapper/gradle-wrapper.jar diff --git a/examples/BasicPlugin/build.gradle b/examples/BasicPlugin/build.gradle new file mode 100644 index 0000000..b2f3414 --- /dev/null +++ b/examples/BasicPlugin/build.gradle @@ -0,0 +1,55 @@ +plugins { + id 'java' + id("xyz.jpenilla.run-paper") version "2.3.1" +} + +group = 'org.basicplugins' +version = '1.0-SNAPSHOT' + +repositories { + mavenCentral() + maven { + name = "papermc-repo" + url = "https://repo.papermc.io/repository/maven-public/" + } +} + +dependencies { + compileOnly("io.papermc.paper:paper-api:1.21.11-R0.1-SNAPSHOT") +} + +tasks { + runServer { + // Configure the Minecraft version for our task. + // This is the only required configuration besides applying the plugin. + // Your plugin's jar (or shadowJar if present) will be used automatically. + minecraftVersion("1.21") + } +} + +def targetJavaVersion = 21 +java { + def javaVersion = JavaVersion.toVersion(targetJavaVersion) + sourceCompatibility = javaVersion + targetCompatibility = javaVersion + if (JavaVersion.current() < javaVersion) { + toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion) + } +} + +tasks.withType(JavaCompile).configureEach { + options.encoding = 'UTF-8' + + if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible()) { + options.release.set(targetJavaVersion) + } +} + +processResources { + def props = [version: version] + inputs.properties props + filteringCharset 'UTF-8' + filesMatching('paper-plugin.yml') { + expand props + } +} diff --git a/examples/BasicPlugin/gradle.properties b/examples/BasicPlugin/gradle.properties new file mode 100644 index 0000000..e69de29 diff --git a/examples/BasicPlugin/gradle/wrapper/gradle-wrapper.properties b/examples/BasicPlugin/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..0d8ab51 --- /dev/null +++ b/examples/BasicPlugin/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1 @@ +distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip diff --git a/examples/BasicPlugin/settings.gradle b/examples/BasicPlugin/settings.gradle new file mode 100644 index 0000000..65ad98c --- /dev/null +++ b/examples/BasicPlugin/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'BasicPlugin' diff --git a/examples/BasicPlugin/src/main/java/org/basicplugins/basicPlugin/BasicPlugin.java b/examples/BasicPlugin/src/main/java/org/basicplugins/basicPlugin/BasicPlugin.java new file mode 100644 index 0000000..1889dfa --- /dev/null +++ b/examples/BasicPlugin/src/main/java/org/basicplugins/basicPlugin/BasicPlugin.java @@ -0,0 +1,24 @@ +package org.basicplugins.basicPlugin; + +import org.bukkit.Server; +import org.bukkit.plugin.java.JavaPlugin; + +public final class BasicPlugin extends JavaPlugin { + + @Override + public void onEnable() { + // Plugin startup logic + System.out.println("BasicPlugin has been enabled!"); + + Server server = this.getServer(); + server + .getPluginManager() + .registerEvents(new PlayerJoinListener(), this); + } + + @Override + public void onDisable() { + // Plugin shutdown logic + System.out.println("BasicPlugin has been disabled!"); + } +} diff --git a/examples/BasicPlugin/src/main/java/org/basicplugins/basicPlugin/PlayerJoinListener.java b/examples/BasicPlugin/src/main/java/org/basicplugins/basicPlugin/PlayerJoinListener.java new file mode 100644 index 0000000..74a5532 --- /dev/null +++ b/examples/BasicPlugin/src/main/java/org/basicplugins/basicPlugin/PlayerJoinListener.java @@ -0,0 +1,17 @@ +package org.basicplugins.basicPlugin; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerJoinEvent; + +public class PlayerJoinListener implements Listener { + + @EventHandler + public void onPlayerJoin(PlayerJoinEvent event) { + event + .getPlayer() + .sendMessage( + "Welcome to the server, " + event.getPlayer().getName() + "!" + ); + } +} diff --git a/examples/BasicPlugin/src/main/resources/paper-plugin.yml b/examples/BasicPlugin/src/main/resources/paper-plugin.yml new file mode 100644 index 0000000..2d999dd --- /dev/null +++ b/examples/BasicPlugin/src/main/resources/paper-plugin.yml @@ -0,0 +1,4 @@ +name: BasicPlugin +version: '1.0-SNAPSHOT' +main: org.basicplugins.basicPlugin.BasicPlugin +api-version: '1.21'