diff --git a/event/build.gradle b/event/build.gradle new file mode 100644 index 0000000..fa35910 --- /dev/null +++ b/event/build.gradle @@ -0,0 +1,9 @@ +dependencies { + implementation project(':common') + implementation project(':core') + + compileOnly 'io.papermc.paper:paper-api:1.21.10-R0.1-SNAPSHOT' + compileOnly 'org.geysermc.floodgate:api:2.2.4-SNAPSHOT' + implementation 'org.apache.httpcomponents:httpclient:4.5.14' + implementation 'com.sparkjava:spark-core:2.9.4' +} \ No newline at end of file diff --git a/event/src/main/java/eu/mhsl/craftattack/spawn/event/appliances/deathrun/Deathrun.java b/event/src/main/java/eu/mhsl/craftattack/spawn/event/appliances/deathrun/Deathrun.java new file mode 100644 index 0000000..ac2bce0 --- /dev/null +++ b/event/src/main/java/eu/mhsl/craftattack/spawn/event/appliances/deathrun/Deathrun.java @@ -0,0 +1,11 @@ +package eu.mhsl.craftattack.spawn.event.appliances.deathrun; + +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.event.appliances.eventController.Event; + +public class Deathrun extends Appliance implements Event { + @Override + public String displayName() { + return "Deathrun"; + } +} diff --git a/event/src/main/java/eu/mhsl/craftattack/spawn/event/appliances/eventController/Event.java b/event/src/main/java/eu/mhsl/craftattack/spawn/event/appliances/eventController/Event.java new file mode 100644 index 0000000..c458d23 --- /dev/null +++ b/event/src/main/java/eu/mhsl/craftattack/spawn/event/appliances/eventController/Event.java @@ -0,0 +1,5 @@ +package eu.mhsl.craftattack.spawn.event.appliances.eventController; + +public interface Event { + String displayName(); +} diff --git a/event/src/main/java/eu/mhsl/craftattack/spawn/event/appliances/eventController/EventController.java b/event/src/main/java/eu/mhsl/craftattack/spawn/event/appliances/eventController/EventController.java new file mode 100644 index 0000000..83d7559 --- /dev/null +++ b/event/src/main/java/eu/mhsl/craftattack/spawn/event/appliances/eventController/EventController.java @@ -0,0 +1,17 @@ +package eu.mhsl.craftattack.spawn.event.appliances.eventController; + +import eu.mhsl.craftattack.spawn.core.appliance.Appliance; +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.event.appliances.eventController.commands.EventCommand; +import org.jetbrains.annotations.NotNull; + +import java.util.List; + +public class EventController extends Appliance { + @Override + protected @NotNull List> commands() { + return List.of( + new EventCommand() + ); + } +} diff --git a/event/src/main/java/eu/mhsl/craftattack/spawn/event/appliances/eventController/commands/EventCommand.java b/event/src/main/java/eu/mhsl/craftattack/spawn/event/appliances/eventController/commands/EventCommand.java new file mode 100644 index 0000000..487b7bb --- /dev/null +++ b/event/src/main/java/eu/mhsl/craftattack/spawn/event/appliances/eventController/commands/EventCommand.java @@ -0,0 +1,51 @@ +package eu.mhsl.craftattack.spawn.event.appliances.eventController.commands; + +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceCommand; +import eu.mhsl.craftattack.spawn.event.appliances.eventController.EventController; +import org.bukkit.command.Command; +import org.bukkit.command.CommandSender; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; + +import java.util.List; + +public class EventCommand extends ApplianceCommand { + public EventCommand() { + super("event"); + } + + @Override + protected void execute(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { + if(args.length == 0) throw new Error("No argument selected!"); + + switch(args[0]) { + case "select": { + sender.sendMessage("select"); + break; + } + case "start": { + sender.sendMessage("start"); + break; + } + case "pause": { + sender.sendMessage("pause"); + break; + } + case "resume": { + sender.sendMessage("resume"); + break; + } + case "stop": { + sender.sendMessage("stop"); + break; + } + default: throw new Error("No such option: '%s' !".formatted(args[0])); + } + } + + @Override + public @Nullable List onTabComplete(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) { + if(args.length == 1) return List.of("select", "start", "pause", "resume", "stop"); + return null; + } +} diff --git a/settings.gradle b/settings.gradle index 9efb310..618596b 100644 --- a/settings.gradle +++ b/settings.gradle @@ -4,4 +4,5 @@ include 'core' include 'craftattack' include 'common' include 'varo' +include 'event'