build.gradle.ktsNowy plik, 25 linii
1plugins {2 java3 id("xyz.jpenilla.run-paper") version "3.1.0"4}5 6group = "com.example"7version = "1.0.0"8 9repositories {10 maven(url = "https://repo.papermc.io/repository/maven-public/") {11 name = "papermc"12 }13}14 15dependencies {16 compileOnly("io.papermc.paper:paper-api:26.3.build.+")17}18 19java {20 toolchain.languageVersion.set(JavaLanguageVersion.of(25))21}22 23tasks.runServer {24 minecraftVersion("26.3")25}
settings.gradle.ktsNowy plik, 1 linia
1rootProject.name = "powitanie"
src/main/resources/plugin.ymlNowy plik, 9 linii
1name: Powitanie2version: 1.0.03main: com.example.powitanie.PowitaniePlugin4description: Wita graczy wiadomością z config.yml5api-version: '26.3'6permissions:7 powitanie.admin:8 description: Przeładowanie konfiguracji9 default: op
src/main/resources/config.ymlNowy plik, 2 linie
12wiadomosc: "<green>Witaj na serwerze, <gracz>!</green>"
src/main/java/com/example/powitanie/PowitaniePlugin.javaNowy plik, 31 linii
1package com.example.powitanie;2 3import net.kyori.adventure.text.Component;4import net.kyori.adventure.text.minimessage.MiniMessage;5import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;6import org.bukkit.entity.Player;7import org.bukkit.event.EventHandler;8import org.bukkit.event.Listener;9import org.bukkit.event.player.PlayerJoinEvent;10import org.bukkit.plugin.java.JavaPlugin;11 12public final class PowitaniePlugin extends JavaPlugin implements Listener {13 14 @Override15 public void onEnable() {16 saveDefaultConfig();17 getServer().getPluginManager().registerEvents(this, this);18 registerCommand("powitanie", "Pokazuje albo przeładowuje powitanie", new PowitanieCommand(this));19 getLogger().info("Powitanie gotowe");20 }21 22 Component powitanie(Player player) {23 String template = getConfig().getString("wiadomosc", "<green>Witaj, <gracz>!");24 return MiniMessage.miniMessage().deserialize(template, Placeholder.unparsed("gracz", player.getName()));25 }26 27 @EventHandler28 public void onJoin(PlayerJoinEvent event) {29 event.getPlayer().sendMessage(powitanie(event.getPlayer()));30 }31}
src/main/java/com/example/powitanie/PowitanieCommand.javaNowy plik, 41 linii
1package com.example.powitanie;2 3import io.papermc.paper.command.brigadier.BasicCommand;4import io.papermc.paper.command.brigadier.CommandSourceStack;5import java.util.Collection;6import java.util.List;7import org.bukkit.command.CommandSender;8import org.bukkit.entity.Player;9 10public final class PowitanieCommand implements BasicCommand {11 12 private final PowitaniePlugin plugin;13 14 PowitanieCommand(PowitaniePlugin plugin) {15 this.plugin = plugin;16 }17 18 @Override19 public void execute(CommandSourceStack source, String[] args) {20 CommandSender sender = source.getSender();21 if (args.length == 1 && args[0].equalsIgnoreCase("przeladuj")) {22 if (!sender.hasPermission("powitanie.admin")) {23 sender.sendRichMessage("<red>Brak uprawnienia powitanie.admin");24 return;25 }26 plugin.reloadConfig();27 sender.sendRichMessage("<green>Przeładowano config.yml");28 return;29 }30 if (source.getExecutor() instanceof Player player) {31 player.sendMessage(plugin.powitanie(player));32 } else {33 sender.sendRichMessage("<gray>Użycie: /powitanie albo /powitanie przeladuj");34 }35 }36 37 @Override38 public Collection<String> suggest(CommandSourceStack source, String[] args) {39 return args.length <= 1 ? List.of("przeladuj") : List.of();40 }41}
gradle2 polecenia
$ gradle buildbuild/libs/powitanie-1.0.0.jar$ gradle runServerLatest build for 26.3 is 157.[PluginInitializerManager] Bukkit plugins (1): - Powitanie (1.0.0)