예제 #1
0
 @Command(
     aliases = {"leave", "quit", "exit"},
     usage = {
       "§2 - /settlement leave [settlement name]",
       "§a  \u00bbLeave the specified settlement, or your currently focused one if you have one."
     },
     shortUsage = {"§2 - /settlement leave", "§a  \u00bbLeave a settlement."},
     permission = SettlementCommand.BASIC_PERMISSION + ".leave",
     useCommandArguments = true,
     playersOnly = true)
 public boolean leave(CommandSender sender, CommandArguments args) {
   SettlementPlayer sPlayer = server.getSettlementPlayer((Player) sender);
   Settlement from = SettlementUtil.getFocusedOrStated(sPlayer, args);
   if (from == null) {
     return true;
   }
   if (from.isMember(sPlayer)) {
     if (PermissionUtil.checkPermission(
         sender, SettlementCommand.ADMIN_BASIC_PERMISSION + ".leave", false, true)) {
       if (args.hasBooleanFlag("silent") || args.hasBooleanFlag("s")) {
         from.removeMember(sPlayer);
         SettlementMessenger.sendSettlementMessage(
             sender,
             StringUtil.concatString(
                 40 + 16, "  §a  You left the Settlement §6", from.getName(), " §asilently"));
         return true;
       }
     }
     if (sPlayer.getRank(from) == Rank.OWNER && from.getMemberCount() > 1) {
       SettlementMessenger.sendSettlementMessage(
           sender,
           "§c  You are not allowed to do that!",
           "§a  As §bowner §a, you may not leave the settlement without first deleting it!",
           "§a  If you are sure, use /settlement delete!");
     }
     from.removeMember(sPlayer);
     SettlementMessenger.sendSettlementMessage(
         sender,
         StringUtil.concatString(
             40 + 16, "  §a  You left the Settlement §6", from.getName(), " §a!"));
     from.broadcastSettlementMessage(
         StringUtil.concatString(0, "  §b", sPlayer.getName(), " §aleft the Settlement!"));
     return true;
   }
   SettlementMessenger.sendSettlementMessage(sender, "§c  You are not in that Settlement!");
   return true;
 }