public void CommandUnban(MiNET.Player player, string playerName) { if (!(player is SkyPlayer skyPlayer) || !skyPlayer.PlayerGroup.IsAtLeast(PlayerGroup.Mod)) { player.SendMessage("§c§l(!)§r §cYou do not have permission for this command."); return; } RunnableTask.RunTask(() => { string targetXuid = StatisticsCore.GetXuidForPlayername(playerName); if (targetXuid == null) { player.SendMessage($"§f[PUNISH] §7{playerName} §cis not a Skytonia user."); return; } if (PunishCore.GetPunishmentsFor(targetXuid).RemoveActive(PunishmentType.Ban)) { player.SendMessage($"§f[PUNISH] §7{playerName} §chas been unbanned."); } else { player.SendMessage($"§f[PUNISH] §7{playerName} §cis not currently banned."); } }); }
public void CommandKick(MiNET.Player player, string playerName, string[] reason) { if (!(player is SkyPlayer skyPlayer) || !skyPlayer.PlayerGroup.IsAtLeast(PlayerGroup.Helper)) { player.SendMessage("§c§l(!)§r §cYou do not have permission for this command."); return; } RunnableTask.RunTask(() => { string targetXuid = StatisticsCore.GetXuidForPlayername(playerName); if (targetXuid == null) { player.SendMessage($"§f[PUNISH] §7{playerName} §cis not a Skytonia user."); return; } string punishReason = GetReasonFromArgs(reason); PunishCore.AddKick(targetXuid, punishReason, player.CertificateData.ExtraData.Xuid); SkyPlayer target = SkyCoreAPI.Instance.GetPlayer(playerName); target?.Disconnect($"§cYou have been kicked from the server.\n" + $"§6Reason: {punishReason}"); player.SendMessage($"§f[PUNISH] §7{playerName} §chas been kicked for: §f\"{punishReason}\""); }); }
private static void RunPunishmentCommand(MiNET.Player player, PunishmentType punishmentType, String playerName, string[] args) { string targetXuid = StatisticsCore.GetXuidForPlayername(playerName); if (targetXuid == null) { player.SendMessage($"§f[PUNISH] §7{playerName} §cis not a Skytonia user."); return; } args = ParseExpiryTime(player, args, out DurationUnit durationUnit, out int durationAmount); if (args == null) { return; //Message printed to player } string punishReason = GetReasonFromArgs(args); DateTime expiry = UpdateExpiryTime(durationUnit, durationAmount); Punishment punishment = new Punishment(punishReason, player.CertificateData.ExtraData.Xuid, true, durationAmount, durationUnit, expiry); PunishCore.AddPunishment(targetXuid, punishmentType, punishment); if (punishmentType == PunishmentType.Ban) { SkyPlayer target = SkyCoreAPI.Instance.GetPlayer(playerName); if (durationUnit == DurationUnit.Permanent) { player.SendMessage($"§f[PUNISH] §7{playerName} §chas been banned permanently for: \"{punishReason}\""); target?.Disconnect(PunishmentMessages.GetPunishmentMessage(target, punishmentType, punishment)); } else { player.SendMessage($"§f[PUNISH] §7{playerName} §chas been banned for: §f{GetNeatDuration(durationAmount, durationUnit)} \"{punishReason}\""); target?.Disconnect(PunishmentMessages.GetPunishmentMessage(target, punishmentType, punishment)); } } else if (punishmentType == PunishmentType.Mute) { SkyPlayer target = SkyCoreAPI.Instance.GetPlayer(playerName); if (durationUnit == DurationUnit.Permanent) { player.SendMessage($"§f[PUNISH] §7{playerName} §chas been muted permanently for: \"{punishReason}\""); target?.SendMessage(PunishmentMessages.GetPunishmentMessage(target, PunishmentType.Mute, punishment)); } else { player.SendMessage($"§f[PUNISH] §7{playerName} §chas been muted for: §f{GetNeatDuration(durationAmount, durationUnit)} \"{punishReason}\""); target?.SendMessage(PunishmentMessages.GetPunishmentMessage(target, PunishmentType.Mute, punishment)); } } }