Compare commits

...

3 Commits

207 changed files with 793 additions and 792 deletions

View File

@ -1,68 +1,29 @@
plugins { allprojects {
id 'com.github.johnrengelman.shadow' version '8.1.1' group = 'de.mhsl.craftattack'
id 'java' version = '1.0.0'
}
group = 'eu.mhsl.craftattack' repositories {
version = '1.0' mavenCentral()
maven {
repositories { name = "papermc-repo"
mavenCentral() url = "https://repo.papermc.io/repository/maven-public/"
maven { }
name = "papermc-repo" maven {
url = "https://repo.papermc.io/repository/maven-public/" name = "sonatype"
} url = "https://oss.sonatype.org/content/groups/public/"
maven { }
name = "sonatype" maven {
url = "https://oss.sonatype.org/content/groups/public/" url = uri("https://repo.opencollab.dev/main/")
} }
maven {
url = uri("https://repo.opencollab.dev/main/")
} }
} }
dependencies { subprojects {
compileOnly 'io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT' apply plugin: 'java'
compileOnly 'org.geysermc.floodgate:api:2.2.2-SNAPSHOT'
implementation 'org.apache.httpcomponents:httpclient:4.5.14'
implementation 'com.sparkjava:spark-core:2.9.4'
implementation 'org.reflections:reflections:0.10.2'
}
def targetJavaVersion = 21 java {
java { toolchain {
def javaVersion = JavaVersion.toVersion(targetJavaVersion) languageVersion = JavaLanguageVersion.of(21)
sourceCompatibility = javaVersion }
targetCompatibility = javaVersion
if (JavaVersion.current() < javaVersion) {
toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion)
} }
} }
tasks.withType(JavaCompile).configureEach {
if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible()) {
options.release = targetJavaVersion
}
}
configurations {
shadowImplementation.extendsFrom implementation
}
shadowJar {
configurations = [project.configurations.shadowImplementation]
}
tasks.register('copyJarToServer', Exec) {
dependsOn shadowJar
mustRunAfter shadowJar
commandLine 'scp', 'build/libs/spawn-1.0-all.jar', 'root@10.20.6.1:/home/minecraft/server/plugins'
}
tasks.register('copyJarToTestServer', Exec) {
dependsOn shadowJar
mustRunAfter shadowJar
commandLine 'cp', 'build/libs/spawn-1.0-all.jar', '/home/elias/Dokumente/mcTestServer/plugins/spawn-1.0-all.jar'
}

10
common/build.gradle Normal file
View File

@ -0,0 +1,10 @@
plugins {
id 'java'
}
dependencies {
implementation project(':core')
compileOnly 'io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT'
compileOnly 'org.geysermc.floodgate:api:2.2.2-SNAPSHOT'
}

View File

@ -0,0 +1,20 @@
package eu.mhsl.craftattack.spawn.common.appliances.internal.debug;
import eu.mhsl.craftattack.core.appliance.Appliance;
import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.common.appliances.internal.debug.command.AppliancesCommand;
import eu.mhsl.craftattack.spawn.common.appliances.internal.debug.command.UserInfoCommand;
import org.jetbrains.annotations.NotNull;
import java.util.List;
public class Debug extends Appliance {
@Override
@NotNull
protected List<ApplianceCommand<?>> commands() {
return List.of(
new UserInfoCommand(),
new AppliancesCommand()
);
}
}

View File

@ -1,9 +1,9 @@
package eu.mhsl.craftattack.spawn.appliances.internal.debug.command; package eu.mhsl.craftattack.spawn.common.appliances.internal.debug.command;
import eu.mhsl.craftattack.spawn.Main; import eu.mhsl.craftattack.core.Main;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.appliances.internal.debug.Debug; import eu.mhsl.craftattack.spawn.common.appliances.internal.debug.Debug;
import eu.mhsl.craftattack.spawn.util.text.ComponentUtil; import eu.mhsl.craftattack.core.util.text.ComponentUtil;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.ComponentBuilder; import net.kyori.adventure.text.ComponentBuilder;
import net.kyori.adventure.text.TextComponent; import net.kyori.adventure.text.TextComponent;

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.internal.debug.command; package eu.mhsl.craftattack.spawn.common.appliances.internal.debug.command;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.appliances.internal.debug.Debug; import eu.mhsl.craftattack.spawn.common.appliances.internal.debug.Debug;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.event.ClickEvent; import net.kyori.adventure.text.event.ClickEvent;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.appliances.internal.titleClear; package eu.mhsl.craftattack.spawn.common.appliances.internal.titleClear;
import eu.mhsl.craftattack.spawn.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.Appliance;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.appliances.internal.titleClear; package eu.mhsl.craftattack.spawn.common.appliances.internal.titleClear;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; import eu.mhsl.craftattack.core.appliance.ApplianceListener;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerJoinEvent;

View File

@ -1,8 +1,8 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.chatMention; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMention;
import eu.mhsl.craftattack.spawn.Main; import eu.mhsl.craftattack.core.Main;
import eu.mhsl.craftattack.spawn.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
import net.kyori.adventure.sound.Sound; import net.kyori.adventure.sound.Sound;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;

View File

@ -1,10 +1,10 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.chatMention; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMention;
import eu.mhsl.craftattack.spawn.Main; import eu.mhsl.craftattack.core.Main;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; import eu.mhsl.craftattack.core.appliance.ApplianceListener;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.chatMessages.ChatMessages; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMessages.ChatMessages;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
import eu.mhsl.craftattack.spawn.util.text.ComponentUtil; import eu.mhsl.craftattack.core.util.text.ComponentUtil;
import io.papermc.paper.event.player.AsyncChatDecorateEvent; import io.papermc.paper.event.player.AsyncChatDecorateEvent;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;

View File

@ -1,9 +1,9 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.chatMention; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMention;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.CategorizedSetting; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.SettingCategory; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.MultiBoolSetting; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.MultiBoolSetting;
import org.bukkit.Material; import org.bukkit.Material;
public class ChatMentionSetting extends MultiBoolSetting<ChatMentionSetting.ChatMentionConfig> implements CategorizedSetting { public class ChatMentionSetting extends MultiBoolSetting<ChatMentionSetting.ChatMentionConfig> implements CategorizedSetting {

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.chatMessages; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMessages;
import eu.mhsl.craftattack.spawn.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.event.ClickEvent; import net.kyori.adventure.text.event.ClickEvent;
import net.kyori.adventure.text.event.HoverEvent; import net.kyori.adventure.text.event.HoverEvent;

View File

@ -1,8 +1,8 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.chatMessages; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMessages;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; import eu.mhsl.craftattack.core.appliance.ApplianceListener;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
import eu.mhsl.craftattack.spawn.util.IteratorUtil; import eu.mhsl.craftattack.core.util.IteratorUtil;
import io.papermc.paper.event.player.AsyncChatEvent; import io.papermc.paper.event.player.AsyncChatEvent;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;

View File

@ -1,9 +1,9 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.chatMessages; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMessages;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.CategorizedSetting; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.CategorizedSetting;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.SettingCategory; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.SettingCategory;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.BoolSetting; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.BoolSetting;
import org.bukkit.Material; import org.bukkit.Material;
public class ShowJoinAndLeaveMessagesSetting extends BoolSetting implements CategorizedSetting { public class ShowJoinAndLeaveMessagesSetting extends BoolSetting implements CategorizedSetting {

View File

@ -0,0 +1,28 @@
package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help;
import eu.mhsl.craftattack.core.appliance.Appliance;
import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command.DiscordCommand;
import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command.HelpCommand;
import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command.SpawnCommand;
import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command.TeamspeakCommand;
import org.jetbrains.annotations.NotNull;
import java.util.List;
public class Help extends Appliance {
public Help() {
super("help");
}
@Override
@NotNull
protected List<ApplianceCommand<?>> commands() {
return List.of(
new HelpCommand(),
new SpawnCommand(),
new TeamspeakCommand(),
new DiscordCommand()
);
}
}

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.command; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.Help; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.Help;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.event.ClickEvent; import net.kyori.adventure.text.event.ClickEvent;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.command; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.Help; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.Help;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.command; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.Help; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.Help;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.command; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.command;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.Help; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.help.Help;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars;
import eu.mhsl.craftattack.spawn.Main; import eu.mhsl.craftattack.core.Main;
import net.kyori.adventure.bossbar.BossBar; import net.kyori.adventure.bossbar.BossBar;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.util.Ticks; import net.kyori.adventure.util.Ticks;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;

View File

@ -1,11 +1,11 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars;
import eu.mhsl.craftattack.spawn.Main; import eu.mhsl.craftattack.core.Main;
import eu.mhsl.craftattack.spawn.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars.bars.MsptBar; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.bars.MsptBar;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars.bars.PlayerCounterBar; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.bars.PlayerCounterBar;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars.bars.TpsBar; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.bars.TpsBar;
import org.bukkit.NamespacedKey; import org.bukkit.NamespacedKey;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; import eu.mhsl.craftattack.core.appliance.ApplianceListener;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerJoinEvent;

View File

@ -1,8 +1,8 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars.bars; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.bars;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars.Bar; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.Bar;
import eu.mhsl.craftattack.spawn.util.statistics.ServerMonitor; import eu.mhsl.craftattack.core.util.statistics.ServerMonitor;
import eu.mhsl.craftattack.spawn.util.text.ColorUtil; import eu.mhsl.craftattack.core.util.text.ColorUtil;
import net.kyori.adventure.bossbar.BossBar; import net.kyori.adventure.bossbar.BossBar;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;

View File

@ -1,9 +1,9 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars.bars; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.bars;
import eu.mhsl.craftattack.spawn.Main; import eu.mhsl.craftattack.core.Main;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars.Bar; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.Bar;
import eu.mhsl.craftattack.spawn.appliances.tooling.playerlimit.PlayerLimit; import eu.mhsl.craftattack.spawn.common.appliances.tooling.playerlimit.PlayerLimit;
import eu.mhsl.craftattack.spawn.util.text.ColorUtil; import eu.mhsl.craftattack.core.util.text.ColorUtil;
import net.kyori.adventure.bossbar.BossBar; import net.kyori.adventure.bossbar.BossBar;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.TextColor; import net.kyori.adventure.text.format.TextColor;

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars.bars; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.bars;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars.Bar; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.infoBars.Bar;
import eu.mhsl.craftattack.spawn.util.text.ColorUtil; import eu.mhsl.craftattack.core.util.text.ColorUtil;
import net.kyori.adventure.bossbar.BossBar; import net.kyori.adventure.bossbar.BossBar;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;

View File

@ -1,11 +1,11 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.privateMessage; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage;
import eu.mhsl.craftattack.spawn.Main; import eu.mhsl.craftattack.core.Main;
import eu.mhsl.craftattack.spawn.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.chatMessages.ChatMessages; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.chatMessages.ChatMessages;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.privateMessage.commands.PrivateMessageCommand; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage.commands.PrivateMessageCommand;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.privateMessage.commands.PrivateReplyCommand; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage.commands.PrivateReplyCommand;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.ComponentBuilder; import net.kyori.adventure.text.ComponentBuilder;
import net.kyori.adventure.text.TextComponent; import net.kyori.adventure.text.TextComponent;

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.privateMessage.commands; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage.commands;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.privateMessage.PrivateMessage; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage.PrivateMessage;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.privateMessage.commands; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage.commands;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.privateMessage.PrivateMessage; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.privateMessage.PrivateMessage;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;

View File

@ -0,0 +1,5 @@
package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings;
public interface CategorizedSetting {
SettingCategory category();
}

View File

@ -0,0 +1,7 @@
package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings;
public enum SettingCategory {
Gameplay,
Visuals,
Misc,
}

View File

@ -1,11 +1,11 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings;
import eu.mhsl.craftattack.spawn.Main; import eu.mhsl.craftattack.core.Main;
import eu.mhsl.craftattack.spawn.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.Setting; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.Setting;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.listeners.OpenSettingsShortcutListener; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.listeners.OpenSettingsShortcutListener;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.listeners.SettingsInventoryListener; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.listeners.SettingsInventoryListener;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.BoolSetting; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes.BoolSetting;
import org.bukkit.Material; import org.bukkit.Material;
public class SettingsShortcutSetting extends BoolSetting implements CategorizedSetting { public class SettingsShortcutSetting extends BoolSetting implements CategorizedSetting {

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes;
import com.google.gson.Gson; import com.google.gson.Gson;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Material; import org.bukkit.Material;

View File

@ -1,8 +1,8 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.datatypes;
import eu.mhsl.craftattack.spawn.Main; import eu.mhsl.craftattack.core.Main;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
import eu.mhsl.craftattack.spawn.util.text.ComponentUtil; import eu.mhsl.craftattack.core.util.text.ComponentUtil;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextComponent; import net.kyori.adventure.text.TextComponent;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.listeners; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.listeners;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; import eu.mhsl.craftattack.core.appliance.ApplianceListener;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerSwapHandItemsEvent; import org.bukkit.event.player.PlayerSwapHandItemsEvent;

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.listeners; package eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.listeners;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; import eu.mhsl.craftattack.core.appliance.ApplianceListener;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings; import eu.mhsl.craftattack.spawn.common.appliances.metaGameplay.settings.Settings;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryClickEvent;

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.tooling.acInform; package eu.mhsl.craftattack.spawn.common.appliances.tooling.acInform;
import eu.mhsl.craftattack.spawn.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.ComponentBuilder; import net.kyori.adventure.text.ComponentBuilder;
import net.kyori.adventure.text.TextComponent; import net.kyori.adventure.text.TextComponent;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.appliances.tooling.acInform; package eu.mhsl.craftattack.spawn.common.appliances.tooling.acInform;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.tooling.adminChat; package eu.mhsl.craftattack.spawn.common.appliances.tooling.adminChat;
import eu.mhsl.craftattack.spawn.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.event.ClickEvent; import net.kyori.adventure.text.event.ClickEvent;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.appliances.tooling.adminChat; package eu.mhsl.craftattack.spawn.common.appliances.tooling.adminChat;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.tooling.chatMute; package eu.mhsl.craftattack.spawn.common.appliances.tooling.chatMute;
import eu.mhsl.craftattack.spawn.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import org.bukkit.NamespacedKey; import org.bukkit.NamespacedKey;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.tooling.chatMute; package eu.mhsl.craftattack.spawn.common.appliances.tooling.chatMute;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; import eu.mhsl.craftattack.core.appliance.ApplianceListener;
import eu.mhsl.craftattack.spawn.util.text.DataSizeConverter; import eu.mhsl.craftattack.core.util.text.DataSizeConverter;
import io.papermc.paper.event.player.AsyncChatEvent; import io.papermc.paper.event.player.AsyncChatEvent;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.appliances.tooling.chatMute; package eu.mhsl.craftattack.spawn.common.appliances.tooling.chatMute;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;

View File

@ -1,8 +1,8 @@
package eu.mhsl.craftattack.spawn.appliances.tooling.endPrevent; package eu.mhsl.craftattack.spawn.common.appliances.tooling.endPrevent;
import eu.mhsl.craftattack.spawn.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.config.Configuration; import eu.mhsl.craftattack.core.config.Configuration;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.appliances.tooling.endPrevent; package eu.mhsl.craftattack.spawn.common.appliances.tooling.endPrevent;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.appliances.tooling.endPrevent; package eu.mhsl.craftattack.spawn.common.appliances.tooling.endPrevent;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; import eu.mhsl.craftattack.core.appliance.ApplianceListener;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Material; import org.bukkit.Material;

View File

@ -1,8 +1,8 @@
package eu.mhsl.craftattack.spawn.appliances.tooling.kick; package eu.mhsl.craftattack.spawn.common.appliances.tooling.kick;
import eu.mhsl.craftattack.spawn.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.util.text.DisconnectInfo; import eu.mhsl.craftattack.core.util.text.DisconnectInfo;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.appliances.tooling.kick; package eu.mhsl.craftattack.spawn.common.appliances.tooling.kick;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;

View File

@ -1,8 +1,8 @@
package eu.mhsl.craftattack.spawn.appliances.tooling.maintenance; package eu.mhsl.craftattack.spawn.common.appliances.tooling.maintenance;
import eu.mhsl.craftattack.spawn.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.config.Configuration; import eu.mhsl.craftattack.core.config.Configuration;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.appliances.tooling.maintenance; package eu.mhsl.craftattack.spawn.common.appliances.tooling.maintenance;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.tooling.maintenance; package eu.mhsl.craftattack.spawn.common.appliances.tooling.maintenance;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; import eu.mhsl.craftattack.core.appliance.ApplianceListener;
import eu.mhsl.craftattack.spawn.util.text.DisconnectInfo; import eu.mhsl.craftattack.core.util.text.DisconnectInfo;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerLoginEvent; import org.bukkit.event.player.PlayerLoginEvent;

View File

@ -1,8 +1,8 @@
package eu.mhsl.craftattack.spawn.appliances.tooling.panicBan; package eu.mhsl.craftattack.spawn.common.appliances.tooling.panicBan;
import eu.mhsl.craftattack.spawn.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.util.text.DisconnectInfo; import eu.mhsl.craftattack.core.util.text.DisconnectInfo;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.appliances.tooling.panicBan; package eu.mhsl.craftattack.spawn.common.appliances.tooling.panicBan;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer; import org.bukkit.OfflinePlayer;
import org.bukkit.command.Command; import org.bukkit.command.Command;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.appliances.tooling.panicBan; package eu.mhsl.craftattack.spawn.common.appliances.tooling.panicBan;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; import eu.mhsl.craftattack.core.appliance.ApplianceListener;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.player.AsyncPlayerPreLoginEvent; import org.bukkit.event.player.AsyncPlayerPreLoginEvent;

View File

@ -1,8 +1,8 @@
package eu.mhsl.craftattack.spawn.appliances.tooling.playerlimit; package eu.mhsl.craftattack.spawn.common.appliances.tooling.playerlimit;
import eu.mhsl.craftattack.spawn.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.config.Configuration; import eu.mhsl.craftattack.core.config.Configuration;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.tooling.playerlimit; package eu.mhsl.craftattack.spawn.common.appliances.tooling.playerlimit;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; import eu.mhsl.craftattack.core.appliance.ApplianceListener;
import eu.mhsl.craftattack.spawn.util.text.DisconnectInfo; import eu.mhsl.craftattack.core.util.text.DisconnectInfo;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.player.AsyncPlayerPreLoginEvent; import org.bukkit.event.player.AsyncPlayerPreLoginEvent;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.appliances.tooling.playerlimit; package eu.mhsl.craftattack.spawn.common.appliances.tooling.playerlimit;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.appliances.tooling.restart; package eu.mhsl.craftattack.spawn.common.appliances.tooling.restart;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;

View File

@ -1,9 +1,9 @@
package eu.mhsl.craftattack.spawn.appliances.tooling.restart; package eu.mhsl.craftattack.spawn.common.appliances.tooling.restart;
import eu.mhsl.craftattack.spawn.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.util.IteratorUtil; import eu.mhsl.craftattack.core.util.IteratorUtil;
import eu.mhsl.craftattack.spawn.util.text.Countdown; import eu.mhsl.craftattack.core.util.text.Countdown;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.appliances.tooling.restart; package eu.mhsl.craftattack.spawn.common.appliances.tooling.restart;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.appliances.tooling.spawnpoint; package eu.mhsl.craftattack.spawn.common.appliances.tooling.spawnpoint;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.appliances.tooling.spawnpoint; package eu.mhsl.craftattack.spawn.common.appliances.tooling.spawnpoint;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener; import eu.mhsl.craftattack.core.appliance.ApplianceListener;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerRespawnEvent; import org.bukkit.event.player.PlayerRespawnEvent;

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.tooling.spawnpoint; package eu.mhsl.craftattack.spawn.common.appliances.tooling.spawnpoint;
import eu.mhsl.craftattack.spawn.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand; import eu.mhsl.craftattack.core.appliance.ApplianceCommand;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.NamespacedKey; import org.bukkit.NamespacedKey;

11
core/build.gradle Normal file
View File

@ -0,0 +1,11 @@
plugins {
id 'java'
}
dependencies {
compileOnly 'io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT'
compileOnly 'org.geysermc.floodgate:api:2.2.2-SNAPSHOT'
implementation 'org.apache.httpcomponents:httpclient:4.5.14'
implementation 'com.sparkjava:spark-core:2.9.4'
implementation 'org.reflections:reflections:0.10.2'
}

View File

@ -1,9 +1,9 @@
package eu.mhsl.craftattack.spawn; package eu.mhsl.craftattack.core;
import eu.mhsl.craftattack.spawn.api.client.RepositoryLoader; import eu.mhsl.craftattack.core.api.client.RepositoryLoader;
import eu.mhsl.craftattack.spawn.api.server.HttpServer; import eu.mhsl.craftattack.core.api.server.HttpServer;
import eu.mhsl.craftattack.spawn.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.Appliance;
import eu.mhsl.craftattack.spawn.config.Configuration; import eu.mhsl.craftattack.core.config.Configuration;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.event.HandlerList; import org.bukkit.event.HandlerList;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
@ -44,7 +44,7 @@ public final class Main extends JavaPlugin {
Main.logger().info(String.format("Loaded %d repositories!", this.repositoryLoader.getRepositories().size())); Main.logger().info(String.format("Loaded %d repositories!", this.repositoryLoader.getRepositories().size()));
Main.logger().info("Loading appliances..."); Main.logger().info("Loading appliances...");
Reflections reflections = new Reflections(this.getClass().getPackageName()); Reflections reflections = new Reflections("eu.mhsl.craftattack.spawn");
Set<Class<? extends Appliance>> applianceClasses = reflections.getSubTypesOf(Appliance.class); Set<Class<? extends Appliance>> applianceClasses = reflections.getSubTypesOf(Appliance.class);
this.appliances = applianceClasses.stream() this.appliances = applianceClasses.stream()

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.api.client; package eu.mhsl.craftattack.core.api.client;
import eu.mhsl.craftattack.spawn.Main; import eu.mhsl.craftattack.core.Main;
import org.apache.http.client.utils.URIBuilder; import org.apache.http.client.utils.URIBuilder;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.api.client; package eu.mhsl.craftattack.core.api.client;
import com.google.gson.Gson; import com.google.gson.Gson;
import eu.mhsl.craftattack.spawn.Main; import eu.mhsl.craftattack.core.Main;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import java.net.URI; import java.net.URI;

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.api.client; package eu.mhsl.craftattack.core.api.client;
import org.apache.commons.lang3.NotImplementedException; import org.apache.commons.lang3.NotImplementedException;
import org.reflections.Reflections; import org.reflections.Reflections;

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.api.client; package eu.mhsl.craftattack.core.api.client;
public record ReqResp<TData>(int status, TData data) { public record ReqResp<TData>(int status, TData data) {
} }

View File

@ -1,8 +1,8 @@
package eu.mhsl.craftattack.spawn.api.client.repositories; package eu.mhsl.craftattack.core.api.client.repositories;
import eu.mhsl.craftattack.spawn.api.client.HttpRepository; import eu.mhsl.craftattack.core.api.client.HttpRepository;
import eu.mhsl.craftattack.spawn.api.client.ReqResp; import eu.mhsl.craftattack.core.api.client.ReqResp;
import eu.mhsl.craftattack.spawn.util.api.EventApiUtil; import eu.mhsl.craftattack.core.util.api.EventApiUtil;
import java.util.UUID; import java.util.UUID;

View File

@ -1,9 +1,9 @@
package eu.mhsl.craftattack.spawn.api.client.repositories; package eu.mhsl.craftattack.core.api.client.repositories;
import com.google.common.reflect.TypeToken; import com.google.common.reflect.TypeToken;
import eu.mhsl.craftattack.spawn.api.client.HttpRepository; import eu.mhsl.craftattack.core.api.client.HttpRepository;
import eu.mhsl.craftattack.spawn.api.client.ReqResp; import eu.mhsl.craftattack.core.api.client.ReqResp;
import eu.mhsl.craftattack.spawn.util.api.WebsiteApiUtil; import eu.mhsl.craftattack.core.util.api.WebsiteApiUtil;
import java.lang.reflect.Type; import java.lang.reflect.Type;
import java.util.List; import java.util.List;

View File

@ -1,8 +1,8 @@
package eu.mhsl.craftattack.spawn.api.client.repositories; package eu.mhsl.craftattack.core.api.client.repositories;
import eu.mhsl.craftattack.spawn.api.client.HttpRepository; import eu.mhsl.craftattack.core.api.client.HttpRepository;
import eu.mhsl.craftattack.spawn.api.client.ReqResp; import eu.mhsl.craftattack.core.api.client.ReqResp;
import eu.mhsl.craftattack.spawn.util.api.WebsiteApiUtil; import eu.mhsl.craftattack.core.util.api.WebsiteApiUtil;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;

View File

@ -1,8 +1,8 @@
package eu.mhsl.craftattack.spawn.api.client.repositories; package eu.mhsl.craftattack.core.api.client.repositories;
import eu.mhsl.craftattack.spawn.api.client.HttpRepository; import eu.mhsl.craftattack.core.api.client.HttpRepository;
import eu.mhsl.craftattack.spawn.api.client.ReqResp; import eu.mhsl.craftattack.core.api.client.ReqResp;
import eu.mhsl.craftattack.spawn.util.api.WebsiteApiUtil; import eu.mhsl.craftattack.core.util.api.WebsiteApiUtil;
import java.util.UUID; import java.util.UUID;

View File

@ -1,8 +1,8 @@
package eu.mhsl.craftattack.spawn.api.server; package eu.mhsl.craftattack.core.api.server;
import com.google.gson.Gson; import com.google.gson.Gson;
import eu.mhsl.craftattack.spawn.Main; import eu.mhsl.craftattack.core.Main;
import eu.mhsl.craftattack.spawn.appliance.Appliance; import eu.mhsl.craftattack.core.appliance.Appliance;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import spark.Request; import spark.Request;
import spark.Spark; import spark.Spark;

View File

@ -1,17 +1,19 @@
package eu.mhsl.craftattack.spawn.appliance; package eu.mhsl.craftattack.core.appliance;
import eu.mhsl.craftattack.spawn.Main; import eu.mhsl.craftattack.core.Main;
import eu.mhsl.craftattack.spawn.api.client.Repository; import eu.mhsl.craftattack.core.api.client.Repository;
import eu.mhsl.craftattack.spawn.api.server.HttpServer; import eu.mhsl.craftattack.core.api.server.HttpServer;
import eu.mhsl.craftattack.spawn.config.Configuration; import eu.mhsl.craftattack.core.config.Configuration;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.PluginCommand; import org.bukkit.command.PluginCommand;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.event.HandlerList; import org.bukkit.event.HandlerList;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import java.lang.reflect.Constructor;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional; import java.util.Optional;
@ -104,16 +106,23 @@ public abstract class Appliance {
} }
private void setCommandExecutor(JavaPlugin plugin, String name, ApplianceCommand<?> executor) { private void setCommandExecutor(JavaPlugin plugin, String name, ApplianceCommand<?> executor) {
PluginCommand command = plugin.getCommand(name); try {
if(command != null && executor != null) { PluginCommand command = this.createPluginCommand(name, plugin);
command.setExecutor(executor); command.setExecutor(executor);
command.setTabCompleter(executor); command.setTabCompleter(executor);
} else { plugin.getServer().getCommandMap().register(plugin.getName(), command);
Main.logger().warning("Command " + name + " is not specified in plugin.yml!"); throw new RuntimeException("Test");
throw new RuntimeException("All commands must be registered in plugin.yml. Missing command: " + name); } catch(Exception e) {
throw new RuntimeException(String.format("Failed to register command '%s'", name), e);
} }
} }
private PluginCommand createPluginCommand(String name, JavaPlugin plugin) throws Exception {
Constructor<PluginCommand> constructor = PluginCommand.class.getDeclaredConstructor(String.class, Plugin.class);
constructor.setAccessible(true);
return constructor.newInstance(name, plugin);
}
public List<Listener> getListeners() { public List<Listener> getListeners() {
return this.listeners; return this.listeners;
} }

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.appliance; package eu.mhsl.craftattack.core.appliance;
import eu.mhsl.craftattack.spawn.Main; import eu.mhsl.craftattack.core.Main;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.command.Command; import org.bukkit.command.Command;

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.appliance; package eu.mhsl.craftattack.core.appliance;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.appliance; package eu.mhsl.craftattack.core.appliance;
import eu.mhsl.craftattack.spawn.Main; import eu.mhsl.craftattack.core.Main;
public class CachedApplianceSupplier<T extends Appliance> implements IApplianceSupplier<T> { public class CachedApplianceSupplier<T extends Appliance> implements IApplianceSupplier<T> {
private final T appliance; private final T appliance;

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.appliance; package eu.mhsl.craftattack.core.appliance;
public interface IApplianceSupplier<T extends Appliance> { public interface IApplianceSupplier<T extends Appliance> {
T getAppliance(); T getAppliance();

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.config; package eu.mhsl.craftattack.core.config;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.config; package eu.mhsl.craftattack.core.config;
import eu.mhsl.craftattack.spawn.Main; import eu.mhsl.craftattack.core.Main;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration; import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.util; package eu.mhsl.craftattack.core.util;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.GameRule; import org.bukkit.GameRule;

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.util; package eu.mhsl.craftattack.core.util;
public class NumberUtil { public class NumberUtil {
public static double map(double oldValue, double oldMin, double oldMax, double newMin, double newMax) { public static double map(double oldValue, double oldMin, double oldMax, double newMin, double newMax) {

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.util.api; package eu.mhsl.craftattack.core.util.api;
import eu.mhsl.craftattack.spawn.config.Configuration; import eu.mhsl.craftattack.core.config.Configuration;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import java.net.URI; import java.net.URI;

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.util.api; package eu.mhsl.craftattack.core.util.api;
public class HttpStatus { public class HttpStatus {
public static final int OK = 200; public static final int OK = 200;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.util.api; package eu.mhsl.craftattack.core.util.api;
import eu.mhsl.craftattack.spawn.config.Configuration; import eu.mhsl.craftattack.core.config.Configuration;
import org.apache.http.client.utils.URIBuilder; import org.apache.http.client.utils.URIBuilder;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;

View File

@ -1,8 +1,8 @@
package eu.mhsl.craftattack.spawn.util.entity; package eu.mhsl.craftattack.core.util.entity;
import eu.mhsl.craftattack.spawn.config.ConfigUtil; import eu.mhsl.craftattack.core.config.ConfigUtil;
import eu.mhsl.craftattack.spawn.config.Configuration; import eu.mhsl.craftattack.core.config.Configuration;
import eu.mhsl.craftattack.spawn.util.world.ChunkUtils; import eu.mhsl.craftattack.core.util.world.ChunkUtils;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.configuration.ConfigurationSection; import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.entity.EntityType; import org.bukkit.entity.EntityType;

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.util.entity; package eu.mhsl.craftattack.core.util.entity;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.Statistic; import org.bukkit.Statistic;

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.util.inventory; package eu.mhsl.craftattack.core.util.inventory;
import com.destroystokyo.paper.profile.PlayerProfile; import com.destroystokyo.paper.profile.PlayerProfile;
import com.destroystokyo.paper.profile.ProfileProperty; import com.destroystokyo.paper.profile.ProfileProperty;

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.util.inventory; package eu.mhsl.craftattack.core.util.inventory;
import eu.mhsl.craftattack.spawn.util.text.ComponentUtil; import eu.mhsl.craftattack.core.util.text.ComponentUtil;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor; import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Material; import org.bukkit.Material;

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.util.inventory; package eu.mhsl.craftattack.core.util.inventory;
import net.kyori.adventure.text.Component; import net.kyori.adventure.text.Component;
import org.bukkit.Material; import org.bukkit.Material;

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.util.listener; package eu.mhsl.craftattack.core.util.listener;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.util.listener; package eu.mhsl.craftattack.core.util.listener;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.util.server; package eu.mhsl.craftattack.core.util.server;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.geysermc.cumulus.form.SimpleForm; import org.geysermc.cumulus.form.SimpleForm;

View File

@ -1,8 +1,8 @@
package eu.mhsl.craftattack.spawn.util.server; package eu.mhsl.craftattack.core.util.server;
import com.google.common.io.ByteArrayDataOutput; import com.google.common.io.ByteArrayDataOutput;
import com.google.common.io.ByteStreams; import com.google.common.io.ByteStreams;
import eu.mhsl.craftattack.spawn.Main; import eu.mhsl.craftattack.core.Main;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
public class PluginMessage { public class PluginMessage {

View File

@ -1,6 +1,6 @@
package eu.mhsl.craftattack.spawn.util.statistics; package eu.mhsl.craftattack.core.util.statistics;
import eu.mhsl.craftattack.spawn.Main; import eu.mhsl.craftattack.core.Main;
import net.kyori.adventure.util.Ticks; import net.kyori.adventure.util.Ticks;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.scheduler.BukkitTask; import org.bukkit.scheduler.BukkitTask;

Some files were not shown because too many files have changed in this diff Show More