88import dev .emi .trinkets .api .TrinketInventory ;
99import dev .emi .trinkets .api .TrinketsApi ;
1010import eu .pb4 .sgui .api .gui .SimpleGui ;
11- import io .github .apace100 .apoli .component .PowerHolderComponent ;
12- import io .github .apace100 .apoli .power .InventoryPower ;
1311import me .lucko .fabric .api .permissions .v0 .Permissions ;
14- import net .luckperms .api .LuckPermsProvider ;
15- import net .luckperms .api .cacheddata .CachedPermissionData ;
16- import net .luckperms .api .util .Tristate ;
1712import net .minecraft .command .argument .GameProfileArgumentType ;
1813import net .minecraft .inventory .EnderChestInventory ;
1914import net .minecraft .nbt .NbtCompound ;
2924import us .potatoboy .invview .gui .SavingPlayerDataGui ;
3025import us .potatoboy .invview .gui .UnmodifiableSlot ;
3126
32- import java .util .List ;
3327import java .util .Map ;
34- import java .util .concurrent .CompletableFuture ;
35-
3628
3729public class ViewCommand {
3830 private static MinecraftServer minecraftServer = InvView .getMinecraftServer ();
3931
32+ private static final String permProtected = "invview.protected" ;
33+ private static final String permModify = "invview.can_modify" ;
34+ private static final String msgProtected = "Requested inventory is protected" ;
35+
4036 public static int inv (CommandContext <ServerCommandSource > context ) throws CommandSyntaxException {
4137 ServerPlayerEntity player = context .getSource ().getPlayer ();
4238 ServerPlayerEntity requestedPlayer = getRequestedPlayer (context );
4339
44- boolean canModify = Permissions .check (context .getSource (), "invview.can_modify" , true );
40+ boolean canModify = Permissions .check (context .getSource (), permModify , true );
4541
46- isProtected (requestedPlayer ).thenAcceptAsync (isProtected -> {
42+ Permissions . check (requestedPlayer . getUuid (), permProtected , false ).thenAcceptAsync (isProtected -> {
4743 if (isProtected ) {
48- context .getSource ().sendError (Text .literal ("Requested inventory is protected" ));
44+ context .getSource ().sendError (Text .literal (msgProtected ));
4945 } else {
5046 SimpleGui gui = new SavingPlayerDataGui (ScreenHandlerType .GENERIC_9X5 , player , requestedPlayer );
5147 gui .setTitle (requestedPlayer .getName ());
@@ -65,11 +61,11 @@ public static int eChest(CommandContext<ServerCommandSource> context) throws Com
6561 ServerPlayerEntity requestedPlayer = getRequestedPlayer (context );
6662 EnderChestInventory requestedEchest = requestedPlayer .getEnderChestInventory ();
6763
68- boolean canModify = Permissions .check (context .getSource (), "invview.can_modify" , true );
64+ boolean canModify = Permissions .check (context .getSource (), permModify , true );
6965
70- isProtected (requestedPlayer ).thenAcceptAsync (isProtected -> {
66+ Permissions . check (requestedPlayer . getUuid (), permProtected , false ).thenAcceptAsync (isProtected -> {
7167 if (isProtected ) {
72- context .getSource ().sendError (Text .literal ("Requested inventory is protected" ));
68+ context .getSource ().sendError (Text .literal (msgProtected ));
7369 } else {
7470 SimpleGui gui = new SavingPlayerDataGui (ScreenHandlerType .GENERIC_9X3 , player , requestedPlayer );
7571 gui .setTitle (requestedPlayer .getName ());
@@ -89,11 +85,11 @@ public static int trinkets(CommandContext<ServerCommandSource> context) throws C
8985 ServerPlayerEntity requestedPlayer = getRequestedPlayer (context );
9086 TrinketComponent requestedComponent = TrinketsApi .getTrinketComponent (requestedPlayer ).get ();
9187
92- boolean canModify = Permissions .check (context .getSource (), "invview.can_modify" , true );
88+ boolean canModify = Permissions .check (context .getSource (), permModify , true );
9389
94- isProtected (requestedPlayer ).thenAcceptAsync (isProtected -> {
90+ Permissions . check (requestedPlayer . getUuid (), permProtected , false ).thenAcceptAsync (isProtected -> {
9591 if (isProtected ) {
96- context .getSource ().sendError (Text .literal ("Requested inventory is protected" ));
92+ context .getSource ().sendError (Text .literal (msgProtected ));
9793 } else {
9894 SimpleGui gui = new SavingPlayerDataGui (ScreenHandlerType .GENERIC_9X2 , player , requestedPlayer );
9995 gui .setTitle (requestedPlayer .getName ());
@@ -115,34 +111,34 @@ public static int trinkets(CommandContext<ServerCommandSource> context) throws C
115111 }
116112
117113 public static int origin (CommandContext <ServerCommandSource > context ) throws CommandSyntaxException {
118- ServerPlayerEntity player = context .getSource ().getPlayer ();
119- ServerPlayerEntity requestedPlayer = getRequestedPlayer (context );
120-
121- boolean canModify = Permissions .check (context .getSource (), "invview.can_modify" , true );
122-
123- isProtected (requestedPlayer ).thenAcceptAsync (isProtected -> {
124- if (isProtected ) {
125- context .getSource ().sendError (Text .literal ("Requested inventory is protected" ));
126- } else {
127- List <InventoryPower > inventories = PowerHolderComponent .getPowers (requestedPlayer ,
128- InventoryPower .class );
129- if (inventories .isEmpty ()) {
130- context .getSource ().sendError (Text .literal ("Requested player has no inventory power" ));
131- } else {
132- SimpleGui gui = new SavingPlayerDataGui (ScreenHandlerType .GENERIC_9X5 , player , requestedPlayer );
133- gui .setTitle (requestedPlayer .getName ());
134- int index = 0 ;
135- for (InventoryPower inventory : inventories ) {
136- for (int i = 0 ; i < inventory .size (); i ++) {
137- gui .setSlotRedirect (index , canModify ? new Slot (inventory , i , 0 , 0 ) : new UnmodifiableSlot (inventory , i ));
138- index += 1 ;
139- }
140- }
141-
142- gui .open ();
143- }
144- }
145- });
114+ // ServerPlayerEntity player = context.getSource().getPlayer();
115+ // ServerPlayerEntity requestedPlayer = getRequestedPlayer(context);
116+ //
117+ // boolean canModify = Permissions.check(context.getSource(), permModify , true);
118+ //
119+ // Permissions.check (requestedPlayer.getUuid(), permProtected, false ).thenAcceptAsync(isProtected -> {
120+ // if (isProtected) {
121+ // context.getSource().sendError(Text.literal(msgProtected ));
122+ // } else {
123+ // List<InventoryPower> inventories = PowerHolderComponent.getPowers(requestedPlayer,
124+ // InventoryPower.class);
125+ // if (inventories.isEmpty()) {
126+ // context.getSource().sendError(Text.literal("Requested player has no inventory power"));
127+ // } else {
128+ // SimpleGui gui = new SavingPlayerDataGui(ScreenHandlerType.GENERIC_9X5, player, requestedPlayer);
129+ // gui.setTitle(requestedPlayer.getName());
130+ // int index = 0;
131+ // for (InventoryPower inventory : inventories) {
132+ // for (int i = 0; i < inventory.size(); i++) {
133+ // gui.setSlotRedirect(index, canModify ? new Slot(inventory, i, 0, 0) : new UnmodifiableSlot(inventory, i));
134+ // index += 1;
135+ // }
136+ // }
137+ //
138+ // gui.open();
139+ // }
140+ // }
141+ // });
146142
147143 return 1 ;
148144 }
@@ -153,7 +149,7 @@ private static ServerPlayerEntity getRequestedPlayer(CommandContext<ServerComman
153149 ServerPlayerEntity requestedPlayer = minecraftServer .getPlayerManager ().getPlayer (requestedProfile .getName ());
154150
155151 if (requestedPlayer == null ) {
156- requestedPlayer = minecraftServer .getPlayerManager ().createPlayer (requestedProfile , null );
152+ requestedPlayer = minecraftServer .getPlayerManager ().createPlayer (requestedProfile );
157153 NbtCompound compound = minecraftServer .getPlayerManager ().loadPlayerData (requestedPlayer );
158154 if (compound != null ) {
159155 ServerWorld world = minecraftServer .getWorld (
@@ -168,21 +164,4 @@ private static ServerPlayerEntity getRequestedPlayer(CommandContext<ServerComman
168164
169165 return requestedPlayer ;
170166 }
171-
172- private static CompletableFuture <Boolean > isProtected (ServerPlayerEntity playerEntity ) {
173- if (!InvView .isLuckPerms )
174- return CompletableFuture .completedFuture (false );
175-
176- return LuckPermsProvider .get ().getUserManager ().loadUser (playerEntity .getUuid ())
177- .thenApplyAsync (user -> {
178- CachedPermissionData permissionData = user .getCachedData ()
179- .getPermissionData (user .getQueryOptions ());
180- Tristate tristate = permissionData .checkPermission ("invview.protected" );
181- if (tristate .equals (Tristate .UNDEFINED )) {
182- return false ;
183- }
184-
185- return tristate .asBoolean ();
186- });
187- }
188167}
0 commit comments