Merge remote-tracking branch 'origin/master'

This commit is contained in:
Elias Müller 2024-07-28 01:26:07 +02:00
commit 7678fe11a3
5 changed files with 89 additions and 1 deletions

View File

@ -4,6 +4,8 @@ import eu.mhsl.craftattack.spawn.aggregates.displayName.DisplayName;
import eu.mhsl.craftattack.spawn.api.HttpServer;
import eu.mhsl.craftattack.spawn.appliance.Appliance;
import eu.mhsl.craftattack.spawn.appliances.adminMarker.AdminMarker;
import eu.mhsl.craftattack.spawn.appliances.customAdvancements.CustomAdvancements;
import eu.mhsl.craftattack.spawn.appliances.fleischerchest.Fleischerchest;
import eu.mhsl.craftattack.spawn.appliances.kick.Kick;
import eu.mhsl.craftattack.spawn.appliances.chatMessages.ChatMessages;
import eu.mhsl.craftattack.spawn.appliances.outlawed.Outlawed;
@ -55,7 +57,9 @@ public final class Main extends JavaPlugin {
new PanicBan(),
new Outlawed(),
new DisplayName(),
new Debug()
new Debug(),
new Fleischerchest(),
new CustomAdvancements()
);
Bukkit.getLogger().info("Loading appliances...");

View File

@ -0,0 +1,22 @@
package eu.mhsl.craftattack.spawn.appliances.customAdvancements;
import eu.mhsl.craftattack.spawn.appliance.Appliance;
import org.bukkit.Bukkit;
import org.bukkit.NamespacedKey;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.jetbrains.annotations.NotNull;
import java.util.List;
import java.util.Objects;
public class CustomAdvancements extends Appliance {
public void grantAdvancement(String advancementName, Player player) {
player.getAdvancementProgress(Objects.requireNonNull(Bukkit.getAdvancement(Objects.requireNonNull(NamespacedKey.fromString("custom_advancements:craftattack/" + advancementName))))).awardCriteria("criteria");
}
@Override
protected @NotNull List<Listener> eventHandlers() {
return List.of(new CustomAdvancementsDamageEntityListener());
}
}

View File

@ -0,0 +1,20 @@
package eu.mhsl.craftattack.spawn.appliances.customAdvancements;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.entity.EntityDamageByEntityEvent;
public class CustomAdvancementsDamageEntityListener extends ApplianceListener<CustomAdvancements> {
@EventHandler
public void onEntityDamageEntity(EntityDamageByEntityEvent event) {
Entity damaged = event.getEntity();
if(!(damaged instanceof Player)) return;
Entity damager = event.getDamager();
if(!(damager instanceof Player)) return;
if(damaged.hasPermission("admin")) {
getAppliance().grantAdvancement("search_trouble", (Player) damager);
}
}
}

View File

@ -0,0 +1,24 @@
package eu.mhsl.craftattack.spawn.appliances.fleischerchest;
import eu.mhsl.craftattack.spawn.appliance.Appliance;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.TextColor;
import org.bukkit.event.Listener;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.jetbrains.annotations.NotNull;
import java.util.List;
public class Fleischerchest extends Appliance {
public void renameItem(ItemStack item) {
ItemMeta meta = item.getItemMeta();
meta.displayName(Component.text("Fleischerchest").color(TextColor.color(235, 20, 28)));
item.setItemMeta(meta);
}
@Override
protected @NotNull List<Listener> eventHandlers() {
return List.of(new FleischerchestCraftItemListener());
}
}

View File

@ -0,0 +1,18 @@
package eu.mhsl.craftattack.spawn.appliances.fleischerchest;
import eu.mhsl.craftattack.spawn.appliance.ApplianceListener;
import org.bukkit.Material;
import org.bukkit.event.EventHandler;
import org.bukkit.event.inventory.PrepareItemCraftEvent;
import org.bukkit.inventory.ItemStack;
public class FleischerchestCraftItemListener extends ApplianceListener<Fleischerchest> {
@EventHandler
public void onPrepareItemCraft(PrepareItemCraftEvent event) {
ItemStack result = event.getInventory().getResult();
if(result == null) return;
if(result.getType() == Material.RED_SHULKER_BOX) {
getAppliance().renameItem(event.getInventory().getResult());
}
}
}