added papermc script

This commit is contained in:
bacalhau 2025-03-29 14:44:03 +00:00
parent 3aea986b23
commit 4b103515ab

77
papermc.sh Normal file
View File

@ -0,0 +1,77 @@
#!/bin/sh
# Name: PaperMC Plugin Environment Creator
# Description: Creates a PaperMC plugin project structure with Gradle and a basic event listener
# Author: bacalhau
echo "### PaperMC Plugin Environment Creator ###
Choose a project name: "
# Reads the project name
read PROJECT_NAME
echo "Choose a package name (e.g., io.papermc.$PROJECT_NAME): "
read PACKAGE_NAME
# Converts package name to folder structure
PACKAGE_PATH="$(echo "$PACKAGE_NAME" | tr '.' '/')"
# Creates directories
mkdir -p "$PROJECT_NAME/src/main/java/$PACKAGE_PATH"
mkdir -p "$PROJECT_NAME/src/main/resources"
# Writes settings.gradle.kts
echo "rootProject.name = \"$PROJECT_NAME\"" > "$PROJECT_NAME/settings.gradle.kts"
# Writes build.gradle.kts
echo "plugins {
id(\"java\")
}
repositories {
maven {
name = \"papermc\"
url = uri(\"https://repo.papermc.io/repository/maven-public/\")
}
}
dependencies {
compileOnly(\"io.papermc.paper:paper-api:1.21.4-R0.1-SNAPSHOT\")
}
java {
toolchain.languageVersion.set(JavaLanguageVersion.of(21))
}" > "$PROJECT_NAME/build.gradle.kts"
# Writes plugin.yml
echo "name: $PROJECT_NAME
main: $PACKAGE_NAME.$PROJECT_NAME
version: 1.0
api-version: 1.20" > "$PROJECT_NAME/src/main/resources/plugin.yml"
# Writes Main class
echo "package $PACKAGE_NAME;
import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.plugin.java.JavaPlugin;
public class $PROJECT_NAME extends JavaPlugin implements Listener {
@Override
public void onEnable() {
Bukkit.getPluginManager().registerEvents(this, this);
}
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
event.getPlayer().sendMessage(Component.text(\"Hello, \" + event.getPlayer().getName() + \"!\"));
}
}" > "$PROJECT_NAME/src/main/java/$PACKAGE_PATH/$PROJECT_NAME.java"
# Lists the project structure
tree "$PROJECT_NAME"