Skip to content

Commit 52d7913

Browse files
committed
Forward skinPerm config to bukkit to check it only if necessary
1 parent 4b83213 commit 52d7913

File tree

3 files changed

+21
-6
lines changed

3 files changed

+21
-6
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@
22

33
##### 2.3.3
44

5+
* Forward skinPerm config to bukkit to check it only if necessary
56
* Fix missing bungeecord aliases
7+
* Fix forwarding permission checking
8+
* Fix lowercase bungee perm
69

710
##### 2.3.2
811

bukkit/src/main/java/com/github/games647/changeskin/bukkit/listener/BungeeCordListener.java

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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
}

bungee/src/main/java/com/github/games647/changeskin/bungee/tasks/SkinUpdater.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,11 @@ public void run() {
4848
out.writeInt(targetSkin.getSkinId());
4949
out.writeUTF(targetSkin.getEncodedData());
5050
out.writeUTF(targetSkin.getEncodedSignature());
51+
5152
out.writeUTF(receiver.getUniqueId().toString());
53+
out.writeBoolean(plugin.getConfig().getBoolean("skinPermission"));
5254
out.writeBoolean(bukkitOp);
55+
5356
server.sendData(plugin.getName(), out.toByteArray());
5457
return;
5558
}

0 commit comments

Comments
 (0)