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:
@@ -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,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
|
||||
|
||||
Reference in New Issue
Block a user