diff --git a/src/main/java/gent/zeus/mc13dtl/MC13DTL.java b/src/main/java/gent/zeus/mc13dtl/MC13DTL.java index 24c6b99..72660f0 100644 --- a/src/main/java/gent/zeus/mc13dtl/MC13DTL.java +++ b/src/main/java/gent/zeus/mc13dtl/MC13DTL.java @@ -1,5 +1,7 @@ package gent.zeus.mc13dtl; +import gent.zeus.mc13dtl.group.GroupAddCommand; +import org.bukkit.Bukkit; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.scheduler.BukkitScheduler; @@ -10,20 +12,29 @@ import gent.zeus.mc13dtl.gamestate.GameStateHandler; import io.papermc.paper.command.brigadier.Commands; import io.papermc.paper.plugin.lifecycle.event.LifecycleEventManager; import io.papermc.paper.plugin.lifecycle.event.types.LifecycleEvents; +import org.bukkit.scoreboard.Scoreboard; +import org.bukkit.scoreboard.ScoreboardManager; public class MC13DTL extends JavaPlugin { - public static MC13DTL instance; + public static MC13DTL instance; + public static ScoreboardManager sm; + public static Scoreboard scoreboard; - @Override - public void onEnable() { - instance = this; - getServer().getPluginManager().registerEvents(new GameStateHandler(), this); - LifecycleEventManager manager = this.getLifecycleManager(); - manager.registerEventHandler(LifecycleEvents.COMMANDS, event -> { - Commands commands = event.registrar(); - commands.register("start-game", "Start a game of 13 days to live", new GameStateCommand()); - }); - BukkitScheduler scheduler = this.getServer().getScheduler(); - scheduler.runTaskTimer(this, new RandomEventRunner(), 0, 100); - } + @Override + public void onEnable() { + instance = this; + getServer().getPluginManager().registerEvents(new GameStateHandler(), this); + LifecycleEventManager manager = this.getLifecycleManager(); + manager.registerEventHandler(LifecycleEvents.COMMANDS, event -> { + Commands commands = event.registrar(); + commands.register("start-game", "Start a game of 13 days to live", new GameStateCommand()); + commands.register("groupadd", "Add player to group", new GroupAddCommand()); + }); + BukkitScheduler scheduler = this.getServer().getScheduler(); + scheduler.runTaskTimer(this, new RandomEventRunner(), 0, 100); + scheduler.runTask(this, () -> { + sm = Bukkit.getScoreboardManager(); + scoreboard = sm.getMainScoreboard(); + }); + } } diff --git a/src/main/java/gent/zeus/mc13dtl/group/GroupAddCommand.java b/src/main/java/gent/zeus/mc13dtl/group/GroupAddCommand.java new file mode 100644 index 0000000..2867894 --- /dev/null +++ b/src/main/java/gent/zeus/mc13dtl/group/GroupAddCommand.java @@ -0,0 +1,46 @@ +package gent.zeus.mc13dtl.group; + +import gent.zeus.mc13dtl.MC13DTL; +import io.papermc.paper.command.brigadier.BasicCommand; +import io.papermc.paper.command.brigadier.CommandSourceStack; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.scoreboard.Team; +import org.jetbrains.annotations.NotNull; +import org.bukkit.ChatColor; + +public class GroupAddCommand implements BasicCommand { + + @Override + public void execute(@NotNull CommandSourceStack commandSourceStack, @NotNull String[] args) { + try { + if (args.length == 2) { + Player player = Bukkit.getPlayerExact(args[0]); + if (player != null) { + Integer index = Integer.parseInt(args[1]); + + Team team = null; + try { + team = MC13DTL.scoreboard.registerNewTeam(index.toString()); + team.setColor(ChatColor.values()[index % ChatColor.values().length]); + team.setPrefix("Team " + index.toString() + " "); + team.setAllowFriendlyFire(false); + } catch (IllegalArgumentException e) { + team = MC13DTL.scoreboard.getTeam(index.toString()); + } + + if (team != null) { + team.addPlayer(player); + player.sendRichMessage("You have been added to team " + index.toString()); + } + } else { + commandSourceStack.getSender().sendMessage("Player " + args[0] + " does not exist."); + } + } else { + commandSourceStack.getSender().sendMessage("groupAdd usage: /groupAdd "); + } + } catch (NumberFormatException ex) { + commandSourceStack.getSender().sendMessage("usage: /groupAdd "); + } + } +} diff --git a/src/main/java/gent/zeus/mc13dtl/group/GroupRemoveCommand.java b/src/main/java/gent/zeus/mc13dtl/group/GroupRemoveCommand.java new file mode 100644 index 0000000..d74f7d4 --- /dev/null +++ b/src/main/java/gent/zeus/mc13dtl/group/GroupRemoveCommand.java @@ -0,0 +1,4 @@ +package gent.zeus.mc13dtl.group; + +public class GroupRemoveCommand { +}