我正在制作一个游戏的审查程序.我无法弄清楚如何做到这一点.我有一个单词和句子的字符串[].我发现了如何过滤单词并阻止消息.现在我正在尝试将*替换为与单词长度相同的单词.例如,如果有人说"他妈的那个愚蠢的屁股"就会出现**** that stupid ***.以下是我正在使用的代码
public void Actionfor(ServerChatEventArgs args)
{
var player = TShock.Players[args.Who];
if (!args.Text.ToLower().StartsWith("/") || args.Text.ToLower().StartsWith("/w") || args.Text.ToLower().StartsWith("/r") || args.Text.ToLower().StartsWith("/me") || args.Text.ToLower().StartsWith("/c") || args.Text.ToLower().StartsWith("/party"))
{
foreach (string Word in config.BanWords)
{
if (player.Group.HasPermission("caw.staff"))
{
args.Handled = false;
}
else if (args.Text.ToLower().Contains(Word))
{
switch (config.Action)
{
case "kick":
args.Handled = true;
TShock.Utils.Kick(player, config.KickMessage, true, false);
break;
case "ignore":
args.Handled = true;
player.SendErrorMessage("Your message has been ignored for saying: {0}", Word);
break;
case "censor":
args.Handled = false;
var wordlength = Word.Length;
break;
case "donothing":
args.Handled = false;
break;
}
}
}
}
else
{
args.Handled = false;
}
}
public string[] BanWords = { "fuck", "ass", "can i be staff", "can i be admin" };
Run Code Online (Sandbox Code Playgroud)
在我的案例"censor"下,有些地方有类似的代码
Word = Word.Replace(Word, new string("*", Word.Length));
Run Code Online (Sandbox Code Playgroud)
但是我总是得到一个错误,无法将字符串转换为char,也无法弄清楚其他事情要做.
| 归档时间: |
|
| 查看次数: |
779 次 |
| 最近记录: |