1
mirror of https://github.com/Shiewk/SModeration.git synced 2026-04-28 05:54:16 +02:00

Use API version 1.21.3, fix invsee

This commit is contained in:
Shy
2025-07-09 10:28:54 +02:00
parent 27a1fd8244
commit 26166b5a73
5 changed files with 75 additions and 9 deletions
@@ -5,6 +5,7 @@ import com.mojang.brigadier.context.CommandContext;
import com.mojang.brigadier.exceptions.CommandSyntaxException;
import com.mojang.brigadier.tree.LiteralCommandNode;
import de.shiewk.smoderation.paper.inventory.InvSeeEquipmentInventory;
import de.shiewk.smoderation.paper.inventory.InvSeeInventory;
import de.shiewk.smoderation.paper.util.CommandUtil;
import io.papermc.paper.command.brigadier.CommandSourceStack;
import io.papermc.paper.command.brigadier.argument.ArgumentTypes;
@@ -50,7 +51,7 @@ public final class InvseeCommand implements CommandProvider {
.append(target.teamDisplayName().colorIfAbsent(SECONDARY_COLOR))
.append(text("."))
));
sender.openInventory(target.getInventory());
new InvSeeInventory(sender, target).open();
return Command.SINGLE_SUCCESS;
}
@@ -0,0 +1,69 @@
package de.shiewk.smoderation.paper.inventory;
import de.shiewk.smoderation.paper.SModerationPaper;
import org.bukkit.Bukkit;
import org.bukkit.entity.HumanEntity;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;
import static net.kyori.adventure.text.Component.text;
public class InvSeeInventory implements AutoUpdatingCustomInventory {
private final HumanEntity viewer;
private final HumanEntity subject;
private final Inventory subjectInventory;
private final Inventory inventory;
private boolean changing = false;
public InvSeeInventory(HumanEntity viewer, HumanEntity subject) {
this.viewer = viewer;
this.subject = subject;
this.subjectInventory = subject.getInventory();
this.inventory = Bukkit.createInventory(this, 36, text("Player inventory"));
}
@Override
public void refresh() {
if (!changing){
loadContents();
}
}
private void loadContents() {
for (int i = 0; i < inventory.getSize(); i++) {
inventory.setItem(i, subjectInventory.getItem(i));
}
}
@Override
public void open() {
refresh();
viewer.openInventory(getInventory());
}
@Override
public void click(ItemStack stack, InventoryClickEvent event) {
if (viewer.hasPermission("smod.invsee.modify") && !subject.hasPermission("smod.invsee.preventmodify")){
event.setCancelled(false);
changing = true;
Bukkit.getScheduler().scheduleSyncDelayedTask(SModerationPaper.PLUGIN, () -> {
changing = false;
applyChanges();
});
}
}
private void applyChanges() {
for (int i = 0; i < inventory.getSize(); i++) {
subjectInventory.setItem(i, inventory.getItem(i));
}
}
@Override
public @NotNull Inventory getInventory() {
return inventory;
}
}
@@ -9,6 +9,7 @@ import de.shiewk.smoderation.paper.punishments.PunishmentType;
import de.shiewk.smoderation.paper.storage.PunishmentContainer;
import de.shiewk.smoderation.paper.util.PlayerUtil;
import de.shiewk.smoderation.paper.util.TimeUtil;
import io.papermc.paper.datacomponent.DataComponentTypes;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.TextComponent;
import net.kyori.adventure.text.format.NamedTextColor;
@@ -20,7 +21,6 @@ import org.bukkit.Sound;
import org.bukkit.entity.Player;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
import org.bukkit.inventory.meta.SkullMeta;
@@ -257,7 +257,7 @@ public class SModMenu extends PageableCustomInventory {
private ItemStack createSearchItem(){
final ItemStack stack = new ItemStack(Material.FLOWER_BANNER_PATTERN);
stack.editMeta(meta -> {
meta.addItemFlags(ItemFlag.HIDE_ITEM_SPECIFICS);
stack.setData(DataComponentTypes.HIDE_ADDITIONAL_TOOLTIP);
meta.displayName(applyFormatting(text("Search").color(PRIMARY_COLOR)));
final ArrayList<Component> lore = new ArrayList<>(List.of(
Component.empty(),
+1 -1
View File
@@ -1,7 +1,7 @@
name: SModeration
version: '${version}'
main: de.shiewk.smoderation.paper.SModerationPaper
api-version: '1.21'
api-version: '1.21.3'
load: STARTUP
authors:
- Shiewk