Compare commits

..

20 Commits

Author SHA1 Message Date
092d33beb3 prototype for grief detection 2025-03-29 22:03:12 +01:00
71d5d8303d added lightning fire control 2025-03-15 23:37:24 +01:00
49eeb646ea using common interface instead of individual methods in displayname appliance 2025-03-15 21:54:18 +01:00
ceca038b27 code reformat 2025-03-15 21:41:07 +01:00
76ceb9ef79 removed public directive where possible to reduce number of global accessible classes 2025-03-15 21:38:55 +01:00
219879974c categorized appliances in groups 2025-03-15 21:20:57 +01:00
bd630ebb7a fixed tabcomplete on mute command 2025-02-01 23:01:48 +01:00
c56f318f1c fixed wrong formatting on playtime 2025-02-01 23:01:28 +01:00
4d98d7aa75 removed restart kick message to trigger limbo when used 2024-12-27 11:01:18 +01:00
619190d0ae changed acInform teleport action to grim spectate 2024-12-27 11:00:55 +01:00
06641c5d84 added chatmute 2024-12-27 10:59:56 +01:00
2a52177043 added support for sentences in acinform reports 2024-12-26 20:50:01 +01:00
fc067a2ae0 moved late integrity check to login flow 2024-12-26 20:49:24 +01:00
116a9c11a2 updated ac inform design 2024-12-26 01:56:40 +01:00
3f29ceb08f fixed not respawning at spawnpoint on player death 2024-12-25 23:34:23 +01:00
a33ee357e8 fixed acinform not working with floating point numbers 2024-12-25 23:06:15 +01:00
e36256d5be async whitelist check 2024-12-25 21:09:42 +01:00
0e3a54a1b9 made repository calls async 2024-12-25 16:12:07 +01:00
2e67b41b44 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	src/main/java/eu/mhsl/craftattack/spawn/appliances/spawnpoint/Spawnpoint.java
2024-12-25 00:37:31 +01:00
e4ac8f7a63 renamed spawnpoint key name 2024-12-25 00:37:12 +01:00
155 changed files with 814 additions and 507 deletions

View File

@ -1,14 +0,0 @@
package eu.mhsl.craftattack.spawn.appliances.adminMarker;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
import net.kyori.adventure.text.format.TextColor;
import org.bukkit.Color;
import org.bukkit.entity.Player;
public class AdminMarkerListener extends ApplianceListener<AdminMarker> {
private TextColor getPlayerColor(Player player) {
if(player.hasPermission("chatcolor"))
return TextColor.color(Color.AQUA.asRGB()); // TODO read permission from config
return TextColor.color(Color.WHITE.asRGB());
}
}

View File

@ -1,8 +1,8 @@
package eu.mhsl.craftattack.spawn.appliances.antiSignEdit;
package eu.mhsl.craftattack.spawn.appliances.gameplay.antiSignEdit;
import eu.mhsl.craftattack.spawn.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliances.settings.Settings;
import eu.mhsl.craftattack.spawn.appliances.settings.datatypes.SelectSetting;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.SelectSetting;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;

View File

@ -1,11 +1,11 @@
package eu.mhsl.craftattack.spawn.appliances.antiSignEdit;
package eu.mhsl.craftattack.spawn.appliances.gameplay.antiSignEdit;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
import io.papermc.paper.event.player.PlayerOpenSignEvent;
import org.bukkit.block.sign.SignSide;
import org.bukkit.event.EventHandler;
public class OnSignEditListener extends ApplianceListener<AntiSignEdit> {
class OnSignEditListener extends ApplianceListener<AntiSignEdit> {
@EventHandler
public void onEdit(PlayerOpenSignEvent event) {
if(event.getCause().equals(PlayerOpenSignEvent.Cause.PLACE)) return;

View File

@ -1,9 +1,9 @@
package eu.mhsl.craftattack.spawn.appliances.antiSignEdit;
package eu.mhsl.craftattack.spawn.appliances.gameplay.antiSignEdit;
import eu.mhsl.craftattack.spawn.appliances.settings.CategorizedSetting;
import eu.mhsl.craftattack.spawn.appliances.settings.SettingCategory;
import eu.mhsl.craftattack.spawn.appliances.settings.Settings;
import eu.mhsl.craftattack.spawn.appliances.settings.datatypes.SelectSetting;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.CategorizedSetting;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.SettingCategory;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.SelectSetting;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.autoShulker;
package eu.mhsl.craftattack.spawn.appliances.gameplay.autoShulker;
import eu.mhsl.craftattack.spawn.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliances.settings.Settings;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Material;

View File

@ -1,9 +1,9 @@
package eu.mhsl.craftattack.spawn.appliances.autoShulker;
package eu.mhsl.craftattack.spawn.appliances.gameplay.autoShulker;
import eu.mhsl.craftattack.spawn.appliances.settings.CategorizedSetting;
import eu.mhsl.craftattack.spawn.appliances.settings.SettingCategory;
import eu.mhsl.craftattack.spawn.appliances.settings.Settings;
import eu.mhsl.craftattack.spawn.appliances.settings.datatypes.SelectSetting;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.CategorizedSetting;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.SettingCategory;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.SelectSetting;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;

View File

@ -1,13 +1,13 @@
package eu.mhsl.craftattack.spawn.appliances.autoShulker;
package eu.mhsl.craftattack.spawn.appliances.gameplay.autoShulker;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
import eu.mhsl.craftattack.spawn.appliances.settings.Settings;
import eu.mhsl.craftattack.spawn.appliances.settings.datatypes.SelectSetting;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.SelectSetting;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.entity.EntityPickupItemEvent;
public class ItemPickupListener extends ApplianceListener<AutoShulker> {
class ItemPickupListener extends ApplianceListener<AutoShulker> {
@EventHandler
public void onPickup(EntityPickupItemEvent event) {
if(event.getEntity() instanceof Player p) {

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.appliances.customAdvancements;
package eu.mhsl.craftattack.spawn.appliances.gameplay.customAdvancements;
public class Advancements {
public static String searchTrouble = "search_trouble";

View File

@ -1,11 +1,10 @@
package eu.mhsl.craftattack.spawn.appliances.customAdvancements.listener;
package eu.mhsl.craftattack.spawn.appliances.gameplay.customAdvancements;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
import eu.mhsl.craftattack.spawn.appliances.customAdvancements.CustomAdvancements;
import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerJoinEvent;
public class ApplyPendingAdvancementsListener extends ApplianceListener<CustomAdvancements> {
class ApplyPendingAdvancementsListener extends ApplianceListener<CustomAdvancements> {
@EventHandler
public void onJoin(PlayerJoinEvent event) {
this.getAppliance().applyPendingAdvancements(event.getPlayer());

View File

@ -1,9 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.customAdvancements;
package eu.mhsl.craftattack.spawn.appliances.gameplay.customAdvancements;
import eu.mhsl.craftattack.spawn.Main;
import eu.mhsl.craftattack.spawn.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliances.customAdvancements.listener.ApplyPendingAdvancementsListener;
import eu.mhsl.craftattack.spawn.appliances.customAdvancements.listener.CustomAdvancementsListener;
import org.bukkit.Bukkit;
import org.bukkit.NamespacedKey;
import org.bukkit.advancement.Advancement;

View File

@ -1,8 +1,6 @@
package eu.mhsl.craftattack.spawn.appliances.customAdvancements.listener;
package eu.mhsl.craftattack.spawn.appliances.gameplay.customAdvancements;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
import eu.mhsl.craftattack.spawn.appliances.customAdvancements.Advancements;
import eu.mhsl.craftattack.spawn.appliances.customAdvancements.CustomAdvancements;
import net.kyori.adventure.text.Component;
import org.bukkit.Material;
import org.bukkit.entity.Player;
@ -12,7 +10,7 @@ import org.bukkit.event.inventory.CraftItemEvent;
import org.bukkit.event.player.PlayerChangedWorldEvent;
import org.bukkit.inventory.ItemStack;
public class CustomAdvancementsListener extends ApplianceListener<CustomAdvancements> {
class CustomAdvancementsListener extends ApplianceListener<CustomAdvancements> {
@EventHandler
public void onEntityDamageEntity(EntityDamageByEntityEvent event) {
if(!(event.getEntity() instanceof Player damaged)) return;

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.doubeDoor;
package eu.mhsl.craftattack.spawn.appliances.gameplay.doubleDoor;
import eu.mhsl.craftattack.spawn.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliances.settings.Settings;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.block.data.BlockData;

View File

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

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.doubeDoor;
package eu.mhsl.craftattack.spawn.appliances.gameplay.doubleDoor;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
import eu.mhsl.craftattack.spawn.appliances.settings.Settings;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.event.EventHandler;
@ -11,7 +11,7 @@ import org.bukkit.inventory.EquipmentSlot;
import java.util.Objects;
public class OnDoorInteractListener extends ApplianceListener<DoubleDoor> {
class OnDoorInteractListener extends ApplianceListener<DoubleDoor> {
@EventHandler
public void onPlayerInteract(PlayerInteractEvent event) {
if(!event.hasBlock()) return;

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.appliances.fleischerchest;
package eu.mhsl.craftattack.spawn.appliances.gameplay.fleischerchest;
import eu.mhsl.craftattack.spawn.appliance.Appliance;
import net.kyori.adventure.text.Component;

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.appliances.fleischerchest;
package eu.mhsl.craftattack.spawn.appliances.gameplay.fleischerchest;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
import org.bukkit.Material;
@ -6,7 +6,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.inventory.PrepareItemCraftEvent;
import org.bukkit.inventory.ItemStack;
public class FleischerchestCraftItemListener extends ApplianceListener<Fleischerchest> {
class FleischerchestCraftItemListener extends ApplianceListener<Fleischerchest> {
@EventHandler
public void onPrepareItemCraft(PrepareItemCraftEvent event) {
ItemStack result = event.getInventory().getResult();

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.appliances.glowingBerries;
package eu.mhsl.craftattack.spawn.appliances.gameplay.glowingBerries;
import eu.mhsl.craftattack.spawn.appliance.Appliance;
import net.kyori.adventure.sound.Sound;

View File

@ -1,13 +1,14 @@
package eu.mhsl.craftattack.spawn.appliances.glowingBerries;
package eu.mhsl.craftattack.spawn.appliances.gameplay.glowingBerries;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerItemConsumeEvent;
public class OnBerryEaten extends ApplianceListener<GlowingBerries> {
class OnBerryEaten extends ApplianceListener<GlowingBerries> {
@EventHandler
public void onEat(PlayerItemConsumeEvent event) {
if(event.getItem().getType().equals(Material.GLOW_BERRIES)) this.getAppliance().letPlayerGlow(event.getPlayer());
if(event.getItem().getType().equals(Material.GLOW_BERRIES))
this.getAppliance().letPlayerGlow(event.getPlayer());
}
}

View File

@ -1,8 +1,8 @@
package eu.mhsl.craftattack.spawn.appliances.hotbarRefill;
package eu.mhsl.craftattack.spawn.appliances.gameplay.hotbarRefill;
import eu.mhsl.craftattack.spawn.Main;
import eu.mhsl.craftattack.spawn.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliances.settings.Settings;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.Bukkit;
@ -46,7 +46,8 @@ public class HotbarRefill extends Appliance {
player.sendActionBar(Component.text("Die Hotbar wurde aufgefüllt", NamedTextColor.GREEN));
}, 1);
} catch(NoSuchElementException ignored) {}
} catch(NoSuchElementException ignored) {
}
}
@Override

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.hotbarRefill;
package eu.mhsl.craftattack.spawn.appliances.gameplay.hotbarRefill;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
import eu.mhsl.craftattack.spawn.appliances.settings.Settings;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@ -12,7 +12,7 @@ import org.bukkit.inventory.ItemStack;
import java.util.List;
public class HotbarRefillListener extends ApplianceListener<HotbarRefill> {
class HotbarRefillListener extends ApplianceListener<HotbarRefill> {
private HotbarRefillSetting.HotbarReplaceConfig getPlayerSetting(Player player) {
return Settings.instance().getSetting(
player,

View File

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

View File

@ -1,9 +1,9 @@
package eu.mhsl.craftattack.spawn.appliances.knockDoor;
package eu.mhsl.craftattack.spawn.appliances.gameplay.knockDoor;
import eu.mhsl.craftattack.spawn.Main;
import eu.mhsl.craftattack.spawn.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliances.settings.Settings;
import eu.mhsl.craftattack.spawn.appliances.settings.datatypes.SelectSetting;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.SelectSetting;
import org.bukkit.*;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.appliances.knockDoor;
package eu.mhsl.craftattack.spawn.appliances.gameplay.knockDoor;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
import org.bukkit.GameMode;
@ -7,7 +7,7 @@ import org.bukkit.block.data.type.Door;
import org.bukkit.event.EventHandler;
import org.bukkit.event.block.BlockDamageAbortEvent;
public class KnockDoorListener extends ApplianceListener<KnockDoor> {
class KnockDoorListener extends ApplianceListener<KnockDoor> {
@EventHandler
public void onKnock(BlockDamageAbortEvent event) {
if(event.getPlayer().getGameMode() != GameMode.SURVIVAL) return;

View File

@ -1,9 +1,9 @@
package eu.mhsl.craftattack.spawn.appliances.knockDoor;
package eu.mhsl.craftattack.spawn.appliances.gameplay.knockDoor;
import eu.mhsl.craftattack.spawn.appliances.settings.CategorizedSetting;
import eu.mhsl.craftattack.spawn.appliances.settings.SettingCategory;
import eu.mhsl.craftattack.spawn.appliances.settings.Settings;
import eu.mhsl.craftattack.spawn.appliances.settings.datatypes.SelectSetting;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.CategorizedSetting;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.SettingCategory;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.SelectSetting;
import org.bukkit.Material;
import org.bukkit.NamespacedKey;

View File

@ -0,0 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.gameplay.outlawed;
class OutlawChangeNotPermitted extends Exception {
public OutlawChangeNotPermitted(String message) {
super(message);
}
}

View File

@ -1,10 +1,10 @@
package eu.mhsl.craftattack.spawn.appliances.outlawed;
package eu.mhsl.craftattack.spawn.appliances.gameplay.outlawed;
import eu.mhsl.craftattack.spawn.Main;
import eu.mhsl.craftattack.spawn.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.appliances.displayName.DisplayName;
import eu.mhsl.craftattack.spawn.appliances.whitelist.Whitelist;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.displayName.DisplayName;
import eu.mhsl.craftattack.spawn.appliances.tooling.whitelist.Whitelist;
import eu.mhsl.craftattack.spawn.config.Configuration;
import eu.mhsl.craftattack.spawn.util.text.DisconnectInfo;
import net.kyori.adventure.text.Component;
@ -38,9 +38,9 @@ public class Outlawed extends Appliance implements DisplayName.Prefixed {
if(!player.isOnline()) return;
if(status != Status.FORCED) return;
try {
this.queryAppliance(Whitelist.class).integrityCheck(player);
this.queryAppliance(Whitelist.class).fullIntegrityCheck(player);
} catch(DisconnectInfo.Throwable e) {
Bukkit.getScheduler().runTask(Main.instance(), () -> e.getDisconnectScreen().applyKick(player));
e.getDisconnectScreen().applyKick(player);
}
}),
20 * 60,

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.appliances.outlawed;
package eu.mhsl.craftattack.spawn.appliances.gameplay.outlawed;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
import net.kyori.adventure.text.Component;
@ -7,7 +7,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;
public class OutlawedCommand extends ApplianceCommand.PlayerChecked<Outlawed> {
class OutlawedCommand extends ApplianceCommand.PlayerChecked<Outlawed> {
public OutlawedCommand() {
super("vogelfrei");
}

View File

@ -1,10 +1,10 @@
package eu.mhsl.craftattack.spawn.appliances.outlawed;
package eu.mhsl.craftattack.spawn.appliances.gameplay.outlawed;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerJoinEvent;
public class OutlawedReminderListener extends ApplianceListener<Outlawed> {
class OutlawedReminderListener extends ApplianceListener<Outlawed> {
@EventHandler
public void onJoin(PlayerJoinEvent e) {
if(this.getAppliance().isOutlawed(e.getPlayer())) {

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.appliances.portableCrafting;
package eu.mhsl.craftattack.spawn.appliances.gameplay.portableCrafting;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
import org.bukkit.Material;
@ -6,7 +6,7 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
public class OnCraftingTableUseListener extends ApplianceListener<PortableCrafting> {
class OnCraftingTableUseListener extends ApplianceListener<PortableCrafting> {
@EventHandler
public void inInteract(PlayerInteractEvent event) {
if(!event.getAction().equals(Action.RIGHT_CLICK_AIR)) return;

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.portableCrafting;
package eu.mhsl.craftattack.spawn.appliances.gameplay.portableCrafting;
import eu.mhsl.craftattack.spawn.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliances.settings.Settings;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.jetbrains.annotations.NotNull;

View File

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

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.appliances.snowballKnockback;
package eu.mhsl.craftattack.spawn.appliances.gameplay.snowballKnockback;
import eu.mhsl.craftattack.spawn.appliance.Appliance;
import org.bukkit.entity.Entity;

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.appliances.snowballKnockback;
package eu.mhsl.craftattack.spawn.appliances.gameplay.snowballKnockback;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
import org.bukkit.entity.Entity;
@ -7,7 +7,7 @@ import org.bukkit.entity.LivingEntity;
import org.bukkit.event.EventHandler;
import org.bukkit.event.entity.ProjectileHitEvent;
public class SnowballKnockbackListener extends ApplianceListener<SnowballKnockback> {
class SnowballKnockbackListener extends ApplianceListener<SnowballKnockback> {
@EventHandler
public void onSnowballHit(ProjectileHitEvent event) {
if(event.getHitEntity() == null) return;

View File

@ -1,9 +1,9 @@
package eu.mhsl.craftattack.spawn.appliances.debug;
package eu.mhsl.craftattack.spawn.appliances.internal.debug;
import eu.mhsl.craftattack.spawn.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.appliances.debug.command.AppliancesCommand;
import eu.mhsl.craftattack.spawn.appliances.debug.command.UserInfoCommand;
import eu.mhsl.craftattack.spawn.appliances.internal.debug.command.AppliancesCommand;
import eu.mhsl.craftattack.spawn.appliances.internal.debug.command.UserInfoCommand;
import org.jetbrains.annotations.NotNull;
import java.util.List;

View File

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

View File

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

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.appliances.titleClear;
package eu.mhsl.craftattack.spawn.appliances.internal.titleClear;
import eu.mhsl.craftattack.spawn.appliance.Appliance;
import org.bukkit.entity.Player;

View File

@ -1,10 +1,10 @@
package eu.mhsl.craftattack.spawn.appliances.titleClear;
package eu.mhsl.craftattack.spawn.appliances.internal.titleClear;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerJoinEvent;
public class TitleClearListener extends ApplianceListener<TitleClear> {
class TitleClearListener extends ApplianceListener<TitleClear> {
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
this.getAppliance().clearTitle(event.getPlayer());

View File

@ -1,13 +1,9 @@
package eu.mhsl.craftattack.spawn.appliances.adminMarker;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.adminMarker;
import eu.mhsl.craftattack.spawn.appliance.Appliance;
import net.kyori.adventure.text.format.TextColor;
import org.bukkit.Color;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.jetbrains.annotations.NotNull;
import java.util.List;
public class AdminMarker extends Appliance {
public TextColor getPlayerColor(Player player) {
@ -15,10 +11,4 @@ public class AdminMarker extends Appliance {
return TextColor.color(Color.AQUA.asRGB()); // TODO read permission from config
return TextColor.color(Color.WHITE.asRGB());
}
@Override
@NotNull
protected List<Listener> listeners() {
return List.of(new AdminMarkerListener());
}
}

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.appliances.afkTag;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.afkTag;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
import io.papermc.paper.event.player.AsyncChatEvent;
@ -7,7 +7,7 @@ import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerMoveEvent;
public class AfkResetListener extends ApplianceListener<AfkTag> {
class AfkResetListener extends ApplianceListener<AfkTag> {
@EventHandler
public void onMove(PlayerMoveEvent event) {
this.getAppliance().resetTiming(event.getPlayer());

View File

@ -1,8 +1,8 @@
package eu.mhsl.craftattack.spawn.appliances.afkTag;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.afkTag;
import eu.mhsl.craftattack.spawn.Main;
import eu.mhsl.craftattack.spawn.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliances.displayName.DisplayName;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.displayName.DisplayName;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.event.HoverEvent;
import net.kyori.adventure.text.format.NamedTextColor;

View File

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

View File

@ -1,9 +1,9 @@
package eu.mhsl.craftattack.spawn.appliances.chatMention;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.chatMention;
import eu.mhsl.craftattack.spawn.Main;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
import eu.mhsl.craftattack.spawn.appliances.chatMessages.ChatMessages;
import eu.mhsl.craftattack.spawn.appliances.settings.Settings;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.chatMessages.ChatMessages;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
import eu.mhsl.craftattack.spawn.util.text.ComponentUtil;
import io.papermc.paper.event.player.AsyncChatDecorateEvent;
import net.kyori.adventure.text.Component;
@ -15,7 +15,7 @@ import org.bukkit.event.player.PlayerJoinEvent;
import java.util.ArrayList;
import java.util.List;
public class ChatMentionListener extends ApplianceListener<ChatMention> {
class ChatMentionListener extends ApplianceListener<ChatMention> {
@SuppressWarnings("UnstableApiUsage")
@EventHandler
public void coloringEvent(AsyncChatDecorateEvent event) {

View File

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

View File

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

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.chatMessages;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.chatMessages;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
import eu.mhsl.craftattack.spawn.appliances.settings.Settings;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
import eu.mhsl.craftattack.spawn.util.IteratorUtil;
import io.papermc.paper.event.player.AsyncChatEvent;
import net.kyori.adventure.text.Component;
@ -9,13 +9,14 @@ import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.text.format.TextColor;
import org.bukkit.Color;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import java.util.Optional;
public class ChatMessagesListener extends ApplianceListener<ChatMessages> {
class ChatMessagesListener extends ApplianceListener<ChatMessages> {
@EventHandler
public void onPlayerChatEvent(AsyncChatEvent event) {
event.renderer(
@ -27,7 +28,7 @@ public class ChatMessagesListener extends ApplianceListener<ChatMessages> {
);
}
@EventHandler
@EventHandler(priority = EventPriority.HIGH)
public void onPlayerJoin(PlayerJoinEvent event) {
event.joinMessage(null);
IteratorUtil.onlinePlayers(player -> {

View File

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

View File

@ -1,13 +1,12 @@
package eu.mhsl.craftattack.spawn.appliances.displayName;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.displayName;
import eu.mhsl.craftattack.spawn.Main;
import eu.mhsl.craftattack.spawn.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliances.adminMarker.AdminMarker;
import eu.mhsl.craftattack.spawn.appliances.adminMarker.AdminMarkerListener;
import eu.mhsl.craftattack.spawn.appliances.afkTag.AfkTag;
import eu.mhsl.craftattack.spawn.appliances.outlawed.Outlawed;
import eu.mhsl.craftattack.spawn.appliances.sleepTag.SleepTag;
import eu.mhsl.craftattack.spawn.appliances.yearRank.YearRank;
import eu.mhsl.craftattack.spawn.appliances.gameplay.outlawed.Outlawed;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.adminMarker.AdminMarker;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.afkTag.AfkTag;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.sleepTag.SleepTag;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.yearRank.YearRank;
import eu.mhsl.craftattack.spawn.util.server.Floodgate;
import eu.mhsl.craftattack.spawn.util.text.ComponentUtil;
import net.kyori.adventure.text.Component;
@ -17,11 +16,10 @@ import net.kyori.adventure.text.event.HoverEvent;
import net.kyori.adventure.text.format.NamedTextColor;
import net.kyori.adventure.text.format.TextColor;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.List;
import java.util.Objects;
import java.util.function.Supplier;
import java.util.logging.Level;
@ -33,21 +31,21 @@ public class DisplayName extends Appliance {
public void update(Player player) {
TextColor playerColor = this.queryAppliance(AdminMarker.class).getPlayerColor(player);
List<Supplier<Component>> prefixes = List.of(
() -> this.queryAppliance(Outlawed.class).getNamePrefix(player),
() -> this.queryAppliance(YearRank.class).getNamePrefix(player),
() -> this.queryAppliance(AfkTag.class).getNamePrefix(player),
() -> this.queryAppliance(SleepTag.class).getNamePrefix(player)
List<Supplier<Prefixed>> prefixes = List.of(
() -> this.queryAppliance(Outlawed.class),
() -> this.queryAppliance(YearRank.class),
() -> this.queryAppliance(AfkTag.class),
() -> this.queryAppliance(SleepTag.class)
);
ComponentBuilder<TextComponent, TextComponent.Builder> playerName = Component.text();
prefixes.forEach(supplier -> {
Component prefix = supplier.get();
if(prefix == null) return;
playerName
prefixes.stream()
.map(prefixed -> prefixed.get().getNamePrefix(player))
.filter(Objects::nonNull)
.forEach(prefix -> playerName
.append(prefix)
.append(ComponentUtil.clearedSpace());
});
.append(ComponentUtil.clearedSpace())
);
if(Floodgate.isBedrock(player)) {
playerName
@ -74,10 +72,4 @@ public class DisplayName extends Appliance {
Main.instance().getLogger().log(Level.SEVERE, e, e::getMessage);
}
}
@Override
@NotNull
protected List<Listener> listeners() {
return List.of(new AdminMarkerListener());
}
}

View File

@ -1,12 +1,12 @@
package eu.mhsl.craftattack.spawn.appliances.displayName;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.displayName;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.player.PlayerJoinEvent;
public class DisplayNameUpdateListener extends ApplianceListener<DisplayName> {
@EventHandler(priority = EventPriority.LOWEST)
class DisplayNameUpdateListener extends ApplianceListener<DisplayName> {
@EventHandler(priority = EventPriority.LOW)
public void onJoin(PlayerJoinEvent event) {
this.getAppliance().update(event.getPlayer());
}

View File

@ -1,11 +1,10 @@
package eu.mhsl.craftattack.spawn.appliances.event.listener;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.event;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
import eu.mhsl.craftattack.spawn.appliances.event.Event;
import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerJoinEvent;
public class ApplyPendingRewardsListener extends ApplianceListener<Event> {
class ApplyPendingRewardsListener extends ApplianceListener<Event> {
@EventHandler
public void onJoin(PlayerJoinEvent event) {
this.getAppliance().applyPendingRewards(event.getPlayer());

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.appliances.event;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.event;
import eu.mhsl.craftattack.spawn.Main;
import eu.mhsl.craftattack.spawn.api.client.ReqResp;
@ -6,10 +6,9 @@ import eu.mhsl.craftattack.spawn.api.client.repositories.EventRepository;
import eu.mhsl.craftattack.spawn.api.server.HttpServer;
import eu.mhsl.craftattack.spawn.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.appliances.customAdvancements.Advancements;
import eu.mhsl.craftattack.spawn.appliances.customAdvancements.CustomAdvancements;
import eu.mhsl.craftattack.spawn.appliances.event.command.*;
import eu.mhsl.craftattack.spawn.appliances.event.listener.ApplyPendingRewardsListener;
import eu.mhsl.craftattack.spawn.appliances.gameplay.customAdvancements.Advancements;
import eu.mhsl.craftattack.spawn.appliances.gameplay.customAdvancements.CustomAdvancements;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.command.*;
import eu.mhsl.craftattack.spawn.util.IteratorUtil;
import eu.mhsl.craftattack.spawn.util.api.HttpStatus;
import eu.mhsl.craftattack.spawn.util.entity.DisplayVillager;
@ -83,6 +82,7 @@ public class Event extends Appliance {
public void openEvent() {
if(this.isOpen) throw new ApplianceCommand.Error("Es läuft derzeit bereits ein Event!");
Bukkit.getScheduler().runTaskAsynchronously(Main.instance(), () -> {
ReqResp<EventRepository.CreatedRoom> sessionResponse = this.queryRepository(EventRepository.class).createSession();
if(sessionResponse.status() != HttpStatus.OK)
@ -90,6 +90,7 @@ public class Event extends Appliance {
this.isOpen = true;
this.roomId = sessionResponse.data().uuid();
});
}
public void joinEvent(Player p) {
@ -110,16 +111,19 @@ public class Event extends Appliance {
Main.instance().getLogger().info("Verbinde mit eventserver: " + p.getName());
p.sendMessage(Component.text("Authentifiziere...", NamedTextColor.GREEN));
ReqResp<EventRepository.QueueRoom.Response> queueRespone = this.queryRepository(EventRepository.class)
Bukkit.getScheduler().runTaskAsynchronously(Main.instance(), () -> {
ReqResp<EventRepository.QueueRoom.Response> queueResponse = this.queryRepository(EventRepository.class)
.queueRoom(new EventRepository.QueueRoom(p.getUniqueId(), this.roomId));
if(queueRespone.status() != HttpStatus.OK || queueRespone.data().error() != null) {
p.sendMessage(Component.text("Fehler beim Betreten: " + queueRespone.data().error(), NamedTextColor.RED));
if(queueResponse.status() != HttpStatus.OK || queueResponse.data().error() != null) {
p.sendMessage(Component.text("Fehler beim Betreten: " + queueResponse.data().error(), NamedTextColor.RED));
return;
}
p.sendMessage(Component.text("Betrete...", NamedTextColor.GREEN));
PluginMessage.connect(p, this.localConfig().getString("connect-server-name"));
});
}
public void endEvent() {

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.event.command;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.command;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.appliances.event.Event;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.Event;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.event.command;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.command;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.appliances.event.Event;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.Event;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.event.command;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.command;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.appliances.event.Event;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.Event;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.event.command;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.command;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.appliances.event.Event;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.Event;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.NamedTextColor;
import org.bukkit.command.Command;
@ -16,6 +16,6 @@ public class EventOpenSessionCommand extends ApplianceCommand<Event> {
@Override
protected void execute(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) throws Exception {
this.getAppliance().openEvent();
sender.sendMessage(Component.text("Event-Server erfolgreich gestartet!", NamedTextColor.GREEN));
sender.sendMessage(Component.text("Event-Server gestartet!", NamedTextColor.GREEN));
}
}

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.event.command;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.command;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.appliances.event.Event;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.event.Event;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;

View File

@ -1,12 +1,10 @@
package eu.mhsl.craftattack.spawn.appliances.feedback;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.feedback;
import eu.mhsl.craftattack.spawn.Main;
import eu.mhsl.craftattack.spawn.api.client.ReqResp;
import eu.mhsl.craftattack.spawn.api.client.repositories.FeedbackRepository;
import eu.mhsl.craftattack.spawn.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.appliances.feedback.commands.FeedbackCommand;
import eu.mhsl.craftattack.spawn.appliances.feedback.commands.RequestFeedbackCommand;
import eu.mhsl.craftattack.spawn.util.api.HttpStatus;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.ComponentBuilder;

View File

@ -1,15 +1,16 @@
package eu.mhsl.craftattack.spawn.appliances.feedback.commands;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.feedback;
import eu.mhsl.craftattack.spawn.Main;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.appliances.feedback.Feedback;
import eu.mhsl.craftattack.spawn.util.text.ComponentUtil;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;
import java.util.List;
public class FeedbackCommand extends ApplianceCommand.PlayerChecked<Feedback> {
class FeedbackCommand extends ApplianceCommand.PlayerChecked<Feedback> {
public FeedbackCommand() {
super("feedback");
}
@ -17,6 +18,13 @@ public class FeedbackCommand extends ApplianceCommand.PlayerChecked<Feedback> {
@Override
protected void execute(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) throws Exception {
sender.sendMessage(ComponentUtil.pleaseWait());
this.getAppliance().requestFeedback("self-issued-ingame", List.of(this.getPlayer()), null);
Bukkit.getScheduler().runTaskAsynchronously(
Main.instance(),
() -> this.getAppliance().requestFeedback(
"self-issued-ingame",
List.of(this.getPlayer()),
null
)
);
}
}

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.feedback.commands;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.feedback;
import eu.mhsl.craftattack.spawn.Main;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.appliances.feedback.Feedback;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
@ -9,13 +9,19 @@ import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
public class RequestFeedbackCommand extends ApplianceCommand<Feedback> {
class RequestFeedbackCommand extends ApplianceCommand<Feedback> {
public RequestFeedbackCommand() {
super("requestFeedback");
}
@Override
protected void execute(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) throws Exception {
this.getAppliance().requestFeedback("admin-issued-ingame", new ArrayList<>(Bukkit.getOnlinePlayers()), String.join(" ", args));
Bukkit.getScheduler().runTaskAsynchronously(
Main.instance(),
() -> this.getAppliance().requestFeedback(
"admin-issued-ingame",
new ArrayList<>(Bukkit.getOnlinePlayers()), String.join(" ", args)
)
);
}
}

View File

@ -1,11 +1,11 @@
package eu.mhsl.craftattack.spawn.appliances.help;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.help;
import eu.mhsl.craftattack.spawn.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.appliances.help.command.DiscordCommand;
import eu.mhsl.craftattack.spawn.appliances.help.command.HelpCommand;
import eu.mhsl.craftattack.spawn.appliances.help.command.SpawnCommand;
import eu.mhsl.craftattack.spawn.appliances.help.command.TeamspeakCommand;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.command.DiscordCommand;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.command.HelpCommand;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.command.SpawnCommand;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.help.command.TeamspeakCommand;
import org.jetbrains.annotations.NotNull;
import java.util.List;

View File

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

View File

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

View File

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

View File

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

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.appliances.infoBars;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars;
import eu.mhsl.craftattack.spawn.Main;
import net.kyori.adventure.bossbar.BossBar;

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.appliances.infoBars;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
import org.bukkit.command.Command;
@ -8,7 +8,7 @@ import org.jetbrains.annotations.Nullable;
import java.util.List;
public class InfoBarCommand extends ApplianceCommand.PlayerChecked<InfoBars> {
class InfoBarCommand extends ApplianceCommand.PlayerChecked<InfoBars> {
public InfoBarCommand() {
super("infobar");
}

View File

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

View File

@ -1,10 +1,10 @@
package eu.mhsl.craftattack.spawn.appliances.infoBars;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.infoBars;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerJoinEvent;
public class ShowPreviousBarsListener extends ApplianceListener<InfoBars> {
class ShowPreviousBarsListener extends ApplianceListener<InfoBars> {
@EventHandler
public void onJoin(PlayerJoinEvent event) {
// this.getAppliance().showAll(event.getPlayer());

View File

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

View File

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

View File

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

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.appliances.optionLinks;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.optionLinks;
import eu.mhsl.craftattack.spawn.Main;
import eu.mhsl.craftattack.spawn.appliance.Appliance;

View File

@ -1,10 +1,10 @@
package eu.mhsl.craftattack.spawn.appliances.optionLinks;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.optionLinks;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerJoinEvent;
public class UpdateLinksListener extends ApplianceListener<OptionLinks> {
class UpdateLinksListener extends ApplianceListener<OptionLinks> {
@EventHandler
public void onJoin(PlayerJoinEvent event) {
this.getAppliance().setServerLinks(event.getPlayer());

View File

@ -1,11 +1,11 @@
package eu.mhsl.craftattack.spawn.appliances.packSelect;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;
public class ChangePackCommand extends ApplianceCommand.PlayerChecked<PackSelect> {
class ChangePackCommand extends ApplianceCommand.PlayerChecked<PackSelect> {
public static final String commandName = "texturepack";
public ChangePackCommand() {

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.appliances.packSelect;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.appliances.packSelect;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect;
import eu.mhsl.craftattack.spawn.Main;
import eu.mhsl.craftattack.spawn.appliance.CachedApplianceSupplier;

View File

@ -1,12 +1,12 @@
package eu.mhsl.craftattack.spawn.appliances.packSelect;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect;
import eu.mhsl.craftattack.spawn.Main;
import eu.mhsl.craftattack.spawn.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.appliances.packSelect.listeners.ClickPackInventoryListener;
import eu.mhsl.craftattack.spawn.appliances.packSelect.listeners.ClosePackInventoryListener;
import eu.mhsl.craftattack.spawn.appliances.packSelect.listeners.SetPacksOnJoinListener;
import eu.mhsl.craftattack.spawn.appliances.settings.Settings;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect.listeners.ClickPackInventoryListener;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect.listeners.ClosePackInventoryListener;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect.listeners.SetPacksOnJoinListener;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.Settings;
import net.kyori.adventure.resource.ResourcePackInfo;
import net.kyori.adventure.resource.ResourcePackRequest;
import net.kyori.adventure.text.Component;

View File

@ -1,9 +1,9 @@
package eu.mhsl.craftattack.spawn.appliances.packSelect;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect;
import eu.mhsl.craftattack.spawn.Main;
import eu.mhsl.craftattack.spawn.appliances.settings.CategorizedSetting;
import eu.mhsl.craftattack.spawn.appliances.settings.SettingCategory;
import eu.mhsl.craftattack.spawn.appliances.settings.datatypes.ActionSetting;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.CategorizedSetting;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.SettingCategory;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings.datatypes.ActionSetting;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.ClickType;

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.appliances.packSelect;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect;
import eu.mhsl.craftattack.spawn.Main;
import net.kyori.adventure.resource.ResourcePackInfo;
@ -12,7 +12,7 @@ import java.security.MessageDigest;
import java.util.UUID;
import java.util.concurrent.CompletableFuture;
public class ResourcePackInfoFactory {
class ResourcePackInfoFactory {
private static boolean isValidHash(@Nullable String hash) {
return hash != null && hash.length() == 40;

View File

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

View File

@ -1,7 +1,7 @@
package eu.mhsl.craftattack.spawn.appliances.packSelect.listeners;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect.listeners;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
import eu.mhsl.craftattack.spawn.appliances.packSelect.PackSelect;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect.PackSelect;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.inventory.InventoryCloseEvent;

View File

@ -1,8 +1,8 @@
package eu.mhsl.craftattack.spawn.appliances.packSelect.listeners;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect.listeners;
import eu.mhsl.craftattack.spawn.Main;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
import eu.mhsl.craftattack.spawn.appliances.packSelect.PackSelect;
import eu.mhsl.craftattack.spawn.appliances.metaGameplay.packSelect.PackSelect;
import org.bukkit.Bukkit;
import org.bukkit.event.EventHandler;
import org.bukkit.event.player.PlayerJoinEvent;

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.appliances.playtime;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.playtime;
import eu.mhsl.craftattack.spawn.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.appliances.playtime;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.playtime;
import eu.mhsl.craftattack.spawn.Main;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
@ -10,7 +10,7 @@ import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;
public class PlaytimeCommand extends ApplianceCommand.PlayerChecked<Playtime> {
class PlaytimeCommand extends ApplianceCommand.PlayerChecked<Playtime> {
public PlaytimeCommand() {
super("playtime");
}

View File

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

View File

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

View File

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

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.appliances.report;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.report;
import eu.mhsl.craftattack.spawn.Main;
import eu.mhsl.craftattack.spawn.api.client.ReqResp;
@ -37,7 +37,10 @@ public class Report extends Appliance {
public void reportToUnknown(@NotNull Player issuer) {
ReportRepository.ReportCreationInfo request = new ReportRepository.ReportCreationInfo(issuer.getUniqueId(), null, "");
this.createReport(issuer, request);
Bukkit.getScheduler().runTaskAsynchronously(
Main.instance(),
() -> this.createReport(issuer, request)
);
}
public void reportToKnown(@NotNull Player issuer, @NotNull String targetUsername, @Nullable String reason) {
@ -52,7 +55,10 @@ public class Report extends Appliance {
offlinePlayer.getUniqueId(),
Optional.ofNullable(reason).orElse("")
);
this.createReport(issuer, request);
Bukkit.getScheduler().runTaskAsynchronously(
Main.instance(),
() -> this.createReport(issuer, request)
);
}
private void createReport(Player issuer, ReportRepository.ReportCreationInfo reportRequest) {

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.appliances.report;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.report;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.util.text.ComponentUtil;
@ -16,7 +16,7 @@ import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class ReportCommand extends ApplianceCommand.PlayerChecked<Report> {
class ReportCommand extends ApplianceCommand.PlayerChecked<Report> {
public ReportCommand() {
super("report");
}

View File

@ -1,12 +1,14 @@
package eu.mhsl.craftattack.spawn.appliances.report;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.report;
import eu.mhsl.craftattack.spawn.Main;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
import eu.mhsl.craftattack.spawn.util.text.ComponentUtil;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;
public class ReportsCommand extends ApplianceCommand.PlayerChecked<Report> {
class ReportsCommand extends ApplianceCommand.PlayerChecked<Report> {
public ReportsCommand() {
super("reports");
}
@ -14,6 +16,9 @@ public class ReportsCommand extends ApplianceCommand.PlayerChecked<Report> {
@Override
protected void execute(@NotNull CommandSender sender, @NotNull Command command, @NotNull String label, @NotNull String[] args) {
sender.sendMessage(ComponentUtil.pleaseWait());
this.getAppliance().queryReports(this.getPlayer());
Bukkit.getScheduler().runTaskAsynchronously(
Main.instance(),
() -> this.getAppliance().queryReports(this.getPlayer())
);
}
}

View File

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

View File

@ -1,4 +1,4 @@
package eu.mhsl.craftattack.spawn.appliances.settings;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings;
public enum SettingCategory {
Gameplay,

View File

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

View File

@ -1,11 +1,11 @@
package eu.mhsl.craftattack.spawn.appliances.settings;
package eu.mhsl.craftattack.spawn.appliances.metaGameplay.settings;
import eu.mhsl.craftattack.spawn.appliance.ApplianceCommand;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;
public class SettingsCommand extends ApplianceCommand.PlayerChecked<Settings> {
class SettingsCommand extends ApplianceCommand.PlayerChecked<Settings> {
public SettingsCommand() {
super("settings");
}

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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