mirror of
https://github.com/kaboomserver/icontrolu.git
synced 2025-04-15 16:54:26 -04:00
Use guard clauses when possible
This commit is contained in:
parent
f3fbd1b633
commit
7dbb2aa8f8
2 changed files with 91 additions and 68 deletions
src/main/java/pw/kaboom/icontrolu
|
@ -24,80 +24,93 @@ public final class CommandIcu implements CommandExecutor {
|
|||
if (args.length == 1) {
|
||||
controller.sendMessage(Component
|
||||
.text("Usage: /" + label + " control <player>", NamedTextColor.RED));
|
||||
} else {
|
||||
Player target = Bukkit.getPlayer(args[1]);
|
||||
|
||||
if (target == null && args[1].matches("([a-f0-9]{8}(-[a-f0-9]{4}){4}[a-f0-9]{8})")) {
|
||||
target = Bukkit.getPlayer(UUID.fromString(args[1]));
|
||||
}
|
||||
|
||||
if (target != null) {
|
||||
if (target == controller) {
|
||||
controller.sendMessage(Component.text("You are already controlling yourself"));
|
||||
} else if (PlayerControl.getTarget(controller.getUniqueId()) != null) {
|
||||
controller.sendMessage(
|
||||
Component.text("You are already controlling \"")
|
||||
.append(Component.text(target.getName()))
|
||||
.append(Component.text("\""))
|
||||
);
|
||||
} else if (PlayerControl.getController(target.getUniqueId()) != null) {
|
||||
controller.sendMessage(
|
||||
Component.text("Player \"")
|
||||
.append(Component.text(target.getName()))
|
||||
.append(Component.text("\" is already being controlled"))
|
||||
);
|
||||
} else if (PlayerControl.getTarget(target.getUniqueId()) != null) {
|
||||
controller.sendMessage(
|
||||
Component.text("Player \"")
|
||||
.append(Component.text(target.getName()))
|
||||
.append(Component.text("\" is already controlling another player"))
|
||||
);
|
||||
} else if (!controller.canSee(target)) {
|
||||
controller.sendMessage(Component.text("You may not control this player"));
|
||||
} else {
|
||||
controller.teleportAsync(target.getLocation());
|
||||
|
||||
controller.getInventory().setContents(target.getInventory().getContents());
|
||||
|
||||
PlayerControl.setTarget(controller.getUniqueId(), target);
|
||||
PlayerControl.setController(target.getUniqueId(), controller);
|
||||
|
||||
controller.sendMessage(
|
||||
Component.text("You are now controlling \"")
|
||||
.append(Component.text(target.getName()))
|
||||
.append(Component.text("\""))
|
||||
);
|
||||
}
|
||||
} else {
|
||||
controller.sendMessage(
|
||||
Component.text("Player \"")
|
||||
.append(Component.text(args[1]))
|
||||
.append(Component.text("\" not found"))
|
||||
);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
Player target = Bukkit.getPlayer(args[1]);
|
||||
|
||||
if (target == null && args[1].matches("([a-f0-9]{8}(-[a-f0-9]{4}){4}[a-f0-9]{8})")) {
|
||||
target = Bukkit.getPlayer(UUID.fromString(args[1]));
|
||||
}
|
||||
|
||||
if (target == null) {
|
||||
controller.sendMessage(
|
||||
Component.text("Player \"")
|
||||
.append(Component.text(args[1]))
|
||||
.append(Component.text("\" not found"))
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
if (target == controller) {
|
||||
controller.sendMessage(Component.text("You are already controlling yourself"));
|
||||
return;
|
||||
}
|
||||
|
||||
if (PlayerControl.getTarget(controller.getUniqueId()) != null) {
|
||||
controller.sendMessage(
|
||||
Component.text("You are already controlling \"")
|
||||
.append(Component.text(target.getName()))
|
||||
.append(Component.text("\""))
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
if (PlayerControl.getController(target.getUniqueId()) != null) {
|
||||
controller.sendMessage(
|
||||
Component.text("Player \"")
|
||||
.append(Component.text(target.getName()))
|
||||
.append(Component.text("\" is already being controlled"))
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
if (PlayerControl.getTarget(target.getUniqueId()) != null) {
|
||||
controller.sendMessage(
|
||||
Component.text("Player \"")
|
||||
.append(Component.text(target.getName()))
|
||||
.append(Component.text("\" is already controlling another player"))
|
||||
);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!controller.canSee(target)) {
|
||||
controller.sendMessage(Component.text("You may not control this player"));
|
||||
return;
|
||||
}
|
||||
|
||||
controller.teleportAsync(target.getLocation());
|
||||
controller.getInventory().setContents(target.getInventory().getContents());
|
||||
|
||||
PlayerControl.setTarget(controller.getUniqueId(), target);
|
||||
PlayerControl.setController(target.getUniqueId(), controller);
|
||||
|
||||
controller.sendMessage(
|
||||
Component.text("You are now controlling \"")
|
||||
.append(Component.text(target.getName()))
|
||||
.append(Component.text("\""))
|
||||
);
|
||||
}
|
||||
|
||||
private void stopCommand(final Player controller) {
|
||||
final Player target = PlayerControl.getTarget(controller.getUniqueId());
|
||||
|
||||
if (target != null) {
|
||||
PlayerControl.removeTarget(controller.getUniqueId());
|
||||
PlayerControl.removeController(target.getUniqueId());
|
||||
PlayerControl.scheduleVisibility(controller.getUniqueId());
|
||||
|
||||
final int seconds = 10;
|
||||
|
||||
controller.sendMessage(
|
||||
Component.text("You are no longer controlling \"")
|
||||
.append(Component.text(target.getName()))
|
||||
.append(Component.text("\". You are invisible for "))
|
||||
.append(Component.text(seconds))
|
||||
.append(Component.text(" seconds."))
|
||||
);
|
||||
} else {
|
||||
if (target == null) {
|
||||
controller.sendMessage(Component.text("You are not controlling anyone at the moment"));
|
||||
return;
|
||||
}
|
||||
|
||||
PlayerControl.removeTarget(controller.getUniqueId());
|
||||
PlayerControl.removeController(target.getUniqueId());
|
||||
PlayerControl.scheduleVisibility(controller.getUniqueId());
|
||||
|
||||
controller.sendMessage(
|
||||
Component.text("You are no longer controlling \"")
|
||||
.append(Component.text(target.getName()))
|
||||
.append(Component.text("\". You are invisible for "))
|
||||
.append(Component.text(PlayerControl.getVisibilityDelay()))
|
||||
.append(Component.text(" seconds."))
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -113,9 +126,15 @@ public final class CommandIcu implements CommandExecutor {
|
|||
if (args.length == 0) {
|
||||
controller.sendMessage(Component
|
||||
.text("Usage: /" + label + " <control|stop>", NamedTextColor.RED));
|
||||
} else if (args[0].equalsIgnoreCase("control")) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("control")) {
|
||||
controlCommand(controller, label, args);
|
||||
} else if (args[0].equalsIgnoreCase("stop")) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (args[0].equalsIgnoreCase("stop")) {
|
||||
stopCommand(controller);
|
||||
}
|
||||
return true;
|
||||
|
|
|
@ -84,6 +84,10 @@ public final class PlayerControl implements Listener {
|
|||
return targets.get(playerUUID);
|
||||
}
|
||||
|
||||
public static int getVisibilityDelay() {
|
||||
return VISIBILITY_DELAY_MS / 1000;
|
||||
}
|
||||
|
||||
public static void removeController(final UUID playerUUID) {
|
||||
controllers.remove(playerUUID);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue