public bool TryDoCommand(Players.Player causedBy, string chattext)
 {
     try {
         if (PermissionsManager.CheckAndWarnPermission(causedBy, KingdomsModEntries.MOD_PREFIX + $"kill{KingdomType}"))
         {
             NpcKingdom closestFarm;
             if (chattext.Equals($"/kill{KingdomType} all"))
             {
                 KingdomsTracker.GetAllByType(KingdomType).ForEach(kingdom => kingdom.Kill());
                 KingdomsTracker.SendKingdomNotification($"killed all {KingdomType}");
             }
             else if (KingdomsTracker.TryGetClosest(KingdomType, causedBy.VoxelPosition, out closestFarm))
             {
                 closestFarm.Kill();
                 KingdomsTracker.SendKingdomNotification($"Killed {KingdomType} at {closestFarm.Origin}");
             }
         }
     } catch (Exception exception) {
         Log.WriteError($"Exception while parsing command; {exception.Message} - {exception.StackTrace}");
     }
     return(true);
 }
Exemplo n.º 2
0
 public bool TryDoCommand(Players.Player causedBy, string chattext)
 {
     try {
         if (!Permissions.PermissionsManager.CheckAndWarnPermission(causedBy, KingdomsModEntries.MOD_PREFIX + "listfarms"))
         {
             return(true);
         }
         var m = Regex.Match(chattext, @"/kingdomlist( (?<kingdomType>.+))?");
         if (!m.Success)
         {
             Chat.Send(causedBy, "Command didn't match, use /kingdomlist [kingdomType]");
             return(true);
         }
         var kingdomType = m.Groups ["kingdomType"].Value;
         List <NpcKingdom> kingdoms;
         if (kingdomType.Length < 1 || "all".Equals(kingdomType))
         {
             kingdoms = KingdomsTracker.GetAll();
         }
         else
         {
             kingdoms = KingdomsTracker.GetAllByType(kingdomType);
         }
         var msg = string.Join("\n", kingdoms.Select(f => $"{kingdomType} at {f.Origin}").ToArray());
         if (msg.Length < 1)
         {
             Chat.Send(causedBy, $"No '{kingdomType}' kingdoms found");
         }
         else
         {
             Chat.Send(causedBy, msg);
         }
     } catch (Exception exception) {
         Log.WriteError($"Exception while parsing command; {exception.Message} - {exception.StackTrace}");
     }
     return(true);
 }