@@ -64,10 +64,11 @@ private void checkPermissions(Player player, ByteArrayDataInput dataInput) {
6464
6565 //continue on success only
6666 String receiverUUID = dataInput .readUTF ();
67+ boolean skinPerm = dataInput .readBoolean ();
6768 boolean isOp = dataInput .readBoolean ();
6869
6970 SkinData targetSkin = new SkinData (encodedData , encodedSignature );
70- if (isOp || checkBungeePerms (player , UUID .fromString (receiverUUID ), targetSkin .getUuid ())) {
71+ if (isOp || checkBungeePerms (player , UUID .fromString (receiverUUID ), targetSkin .getUuid (), skinPerm )) {
7172 ByteArrayDataOutput out = ByteStreams .newDataOutput ();
7273 out .writeUTF ("PermissionsSuccess" );
7374 out .writeInt (skinId );
@@ -83,13 +84,21 @@ private void checkPermissions(Player player, ByteArrayDataInput dataInput) {
8384 }
8485 }
8586
86- private boolean checkBungeePerms (Player player , UUID receiverUUID , UUID targetUUID ) {
87+ private boolean checkBungeePerms (Player player , UUID receiverUUID , UUID targetUUID , boolean skinPerm ) {
8788 if (player .getUniqueId ().equals (receiverUUID )) {
88- return player .hasPermission (plugin .getName ().toLowerCase () + ".command.setskin" )
89- && plugin .checkPermission (player , targetUUID , false );
89+ boolean hasCommandPerm = player .hasPermission (plugin .getName ().toLowerCase () + ".command.setskin" );
90+ if (skinPerm ) {
91+ return hasCommandPerm && plugin .checkPermission (player , targetUUID , false );
92+ } else {
93+ return hasCommandPerm ;
94+ }
9095 } else {
91- return player .hasPermission (plugin .getName ().toLowerCase () + ".command.setskin.other" )
92- && plugin .checkPermission (player , targetUUID , false );
96+ boolean hasCommandPerm = player .hasPermission (plugin .getName ().toLowerCase () + ".command.setskin.other" );
97+ if (skinPerm ) {
98+ return hasCommandPerm && plugin .checkPermission (player , targetUUID , false );
99+ } else {
100+ return hasCommandPerm ;
101+ }
93102 }
94103 }
95104}
0 commit comments