1
mirror of https://github.com/Shiewk/SModeration.git synced 2026-04-29 06:34:17 +02:00

4 Commits

6 changed files with 34 additions and 7 deletions
+3 -3
View File
@@ -30,11 +30,11 @@ runPaper {
}
runServer {
minecraftVersion("1.21.8")
minecraftVersion("1.21.10")
downloadPlugins {
// for testing from other client versions
modrinth("ViaVersion", "5.4.1")
modrinth("ViaBackwards", "5.4.1")
modrinth("ViaVersion", "5.5.1")
modrinth("ViaBackwards", "5.5.1")
}
}
+1 -1
View File
@@ -1 +1 @@
pluginVersion = 1.8.0
pluginVersion = 1.8.2
@@ -1,5 +1,6 @@
package de.shiewk.smoderation.paper.inventory;
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.format.TextDecoration;
import net.kyori.adventure.translation.GlobalTranslator;
@@ -9,6 +10,8 @@ import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack;
import java.util.List;
public interface CustomInventory extends InventoryHolder {
void refresh();
@@ -26,6 +29,13 @@ public interface CustomInventory extends InventoryHolder {
}
static Component renderComponent(Player viewer, Component component){
return GlobalTranslator.render(component.children(component.children().stream().map(c -> renderComponent(viewer, c)).toList()), viewer.locale());
Component render = GlobalTranslator.render(component, viewer.locale());
List<Component> oldChildren = render.children();
List<Component> newChildren = new ObjectArrayList<>(oldChildren.size());
for (Component oldChild : oldChildren) {
Component e = renderComponent(viewer, oldChild);
newChildren.add(e);
}
return render.children(newChildren);
}
}
@@ -324,7 +324,7 @@ public class SModMenu extends PageableCustomInventory {
lore.addLine(renderComponent(player, applyFormatting(translatable("smod.menu.info.player", text(PlayerUtil.offlinePlayerName(punishment.to))))));
lore.addLine(renderComponent(player, applyFormatting(translatable("smod.menu.info.punishedBy", text(PlayerUtil.offlinePlayerName(punishment.by))))));
lore.addLine(renderComponent(player, applyFormatting(translatable("smod.menu.info.timestamp", TimeUtil.formatTimeLong(punishment.time)))));
lore.addLine(renderComponent(player, applyFormatting(translatable("smod.menu.info.timestamp", TimeUtil.calendarTimestamp(punishment.time)))));
if (punishment.type != PunishmentType.KICK){
lore.addLine(renderComponent(player, applyFormatting(translatable("smod.menu.info.duration", TimeUtil.formatTimeLong(punishment.until - punishment.time)))));
@@ -2,6 +2,7 @@ package de.shiewk.smoderation.paper.listener;
import de.shiewk.smoderation.paper.SModerationPaper;
import de.shiewk.smoderation.paper.event.PunishmentIssueEvent;
import de.shiewk.smoderation.paper.inventory.CustomInventory;
import de.shiewk.smoderation.paper.punishments.Punishment;
import de.shiewk.smoderation.paper.punishments.PunishmentType;
import de.shiewk.smoderation.paper.storage.PunishmentContainer;
@@ -85,7 +86,7 @@ public class PunishmentListener implements Listener {
case KICK, BAN -> {
final Player player = Bukkit.getPlayer(punishment.to);
if (player != null) {
player.kick(CHAT_PREFIX.append(punishment.playerMessage()));
player.kick(CustomInventory.renderComponent(player, CHAT_PREFIX.append(punishment.playerMessage())));
}
}
}
@@ -3,6 +3,7 @@ package de.shiewk.smoderation.paper.listener;
import de.shiewk.smoderation.paper.SModerationPaper;
import de.shiewk.smoderation.paper.command.VanishCommand;
import de.shiewk.smoderation.paper.util.SchedulerUtil;
import io.papermc.paper.event.entity.WardenAngerChangeEvent;
import net.kyori.adventure.key.Key;
import net.kyori.adventure.sound.Sound;
import net.kyori.adventure.text.Component;
@@ -11,6 +12,7 @@ import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityTargetEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerQuitEvent;
@@ -86,6 +88,20 @@ public class VanishListener implements Listener {
}
}
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void onEntityTarget(EntityTargetEvent event){
if (event.getTarget() instanceof Player pl && VanishCommand.isVanished(pl)) {
event.setCancelled(true);
}
}
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void onEntityTarget(WardenAngerChangeEvent event){
if (event.getTarget() instanceof Player pl && VanishCommand.isVanished(pl)) {
event.setCancelled(true);
}
}
private static void broadcast(Component message) {
Component result = PREFIX.append(message);
Bukkit.getConsoleSender().sendMessage(result);