@Override protected boolean doExecute( final String alias, final Player player, final PlayerInfo pi, final IslandInfo island, Map<String, Object> data, String... args) { if (args.length == 0) { player.sendMessage(tr("\u00a7eThe following players are trusted on your island:")); player.sendMessage(tr("\u00a74{0}", island.getTrustees())); player.sendMessage(tr("\u00a7eThe following leaders trusts you:")); player.sendMessage(tr("\u00a74{0}", getLeaderNames(pi))); player.sendMessage( tr("\u00a7eTo trust/untrust from your island, use /island trust <player>")); return true; } else if (args.length == 1) { final String name = args[0]; if (island.getMembers().contains(name)) { player.sendMessage(tr("\u00a74Members are already trusted!")); return true; } OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(name); if (offlinePlayer == null) { player.sendMessage(tr("\u00a74Unknown player {0}", name)); return true; } if (alias.equals("trust")) { island.trust(name); if (offlinePlayer.isOnline()) { offlinePlayer .getPlayer() .sendMessage( tr( "\u00a7eYou are now trusted on \u00a74{0}'s \u00a7eisland.", pi.getDisplayName())); } island.sendMessageToIslandGroup( true, marktr("\u00a7a{0} trusted {1} on the island"), player.getName(), name); } else { island.untrust(name); if (offlinePlayer.isOnline()) { offlinePlayer .getPlayer() .sendMessage( tr( "\u00a7eYou are no longer trusted on \u00a74{0}'s \u00a7eisland.", pi.getDisplayName())); } island.sendMessageToIslandGroup( true, marktr("\u00a7c{0} revoked trust in {1} on the island"), player.getName(), name); } WorldGuardHandler.updateRegion(player, island); return true; } return false; }
private void protectIsland(CommandSender sender, IslandInfo islandInfo) { if (WorldGuardHandler.protectIsland(plugin, sender, islandInfo)) { sender.sendMessage( tr( "\u00a7e{0}s island at {1} has been protected", islandInfo.getLeader(), islandInfo.getName())); } else { sender.sendMessage( tr( "\u00a74{0}s island at {1} was already protected", islandInfo.getLeader(), islandInfo.getName())); } }
public void clearIsland(Location loc, Runnable afterDeletion) { log.log(Level.FINE, "clearing island at {0}", loc); World skyBlockWorld = plugin.getWorld(); ProtectedRegion region = WorldGuardHandler.getIslandRegionAt(loc); if (region != null) { for (Player player : WorldEditHandler.getPlayersInRegion(plugin.getWorld(), region)) { if (player != null && player.isOnline() && !player.isFlying()) { player.sendMessage( tr("\u00a7cThe island you are on is being deleted! Sending you to spawn.")); plugin.spawnTeleport(player, true); } } WorldEditHandler.clearIsland(skyBlockWorld, region, afterDeletion); } else { log.log( Level.WARNING, "Trying to delete an island - with no WG region! ({0})", LocationUtil.asString(loc)); afterDeletion.run(); } }
@Override public boolean execute( CommandSender sender, String alias, Map<String, Object> data, String... args) { if (args.length == 2) { String island = args[0]; String playerName = args[1]; PlayerInfo islandPlayer = plugin.getPlayerInfo(island); PlayerInfo playerInfo = plugin.getPlayerInfo(playerName); if (islandPlayer == null || !islandPlayer.getHasIsland()) { sender.sendMessage(tr("\u00a74Player {0} has no island to transfer!", island)); return false; } IslandInfo islandInfo = plugin.getIslandInfo(islandPlayer); if (islandInfo == null) { sender.sendMessage(tr("\u00a74Player {0} has no island to transfer!", island)); return false; } if (playerInfo != null && playerInfo.getHasIsland()) { sender.sendMessage( tr( "\u00a7ePlayer \u00a7d{0}\u00a7e already has an island.\u00a7eUse \u00a7d/usb island remove <name>\u00a7e to remove him first.", playerName)); return false; } playerInfo.setJoinParty(islandInfo.getIslandLocation()); Location homeLocation = islandPlayer.getHomeLocation(); islandInfo.removeMember(islandPlayer); // Remove leader islandInfo.setupPartyLeader(playerInfo.getPlayerName()); // Promote member playerInfo.setHomeLocation(homeLocation); islandPlayer.save(); playerInfo.save(); WorldGuardHandler.updateRegion(sender, islandInfo); islandInfo.sendMessageToIslandGroup( tr("\u00a7bLeadership transferred by {0}\u00a7b to {1}", sender.getName(), playerName)); return true; } return false; }
@Override protected boolean doExecute( String alias, Player player, PlayerInfo pi, IslandInfo island, Map<String, Object> data, String... args) { if (args.length == 0) { player.sendMessage( tr("\u00a7eThe following players are banned from warping to your island:")); player.sendMessage(tr("\u00a74{0}", island.getBans())); player.sendMessage(tr("\u00a7eTo ban/unban from your island, use /island ban <player>")); return true; } else if (args.length == 1) { String name = args[0]; if (island.getMembers().contains(name)) { player.sendMessage(tr("\u00a74You can't ban members. Remove them first!")); return true; } if (!island.hasPerm(player, "canKickOthers")) { player.sendMessage(tr("\u00a74You do not have permission to kick/ban players.")); return true; } if (!island.isBanned(name)) { OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(name); if (offlinePlayer == null) { player.sendMessage(tr("\u00a7eUnable to ban unknown player {0}", name)); return true; } if (offlinePlayer.isOnline() && hasPermission(offlinePlayer.getPlayer(), "usb.exempt.ban")) { offlinePlayer .getPlayer() .sendMessage(tr("\u00a74{0} tried to ban you from their island!", player.getName())); player.sendMessage(tr("\u00a74{0} is exempt from being banned.", name)); return true; } island.banPlayer(offlinePlayer.getUniqueId()); player.sendMessage( tr("\u00a7eYou have banned \u00a74{0}\u00a7e from warping to your island.", name)); if (offlinePlayer != null && offlinePlayer.isOnline()) { offlinePlayer .getPlayer() .sendMessage( tr( "\u00a7eYou have been \u00a7cBANNED\u00a7e from {0}\u00a7e''s island.", player.getDisplayName())); if (plugin.locationIsOnIsland(player, offlinePlayer.getPlayer().getLocation())) { plugin.spawnTeleport(offlinePlayer.getPlayer(), true); } } } else { OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(name); if (offlinePlayer == null) { player.sendMessage(tr("\u00a7eUnable to ban unknown player {0}", name)); return true; } island.unbanPlayer(offlinePlayer.getUniqueId()); player.sendMessage( tr("\u00a7eYou have unbanned \u00a7a{0}\u00a7e from warping to your island.", name)); if (offlinePlayer != null && offlinePlayer.isOnline()) { offlinePlayer .getPlayer() .sendMessage( tr( "\u00a7eYou have been \u00a7aUNBANNED\u00a7e from {0}\u00a7e''s island.", player.getDisplayName())); } } WorldGuardHandler.updateRegion(island); return true; } return false; }