void OnXMBanApplied(ulong playerId, string banType, int minutes, string reason)
| 值 | 说明 |
|---|---|
| freeze | 冻结 |
| mute | 禁言 |
| damage | 伤害限制 |
| command | 指令限制 |
| item | 物品限制 |
| permission | 权限限制 |
| loot | 搜刮限制 |
| deploy | 部署限制 |
| gather | 采集限制 |
| craft | 制作限制 |
| mount | 驾驶限制 |
| wear | 穿戴限制 |
| team | 队伍限制 |
| plant | 种植限制 |
void OnXMBanApplied(ulong playerId, string banType, int minutes, string reason)
{
Puts($"玩家 {playerId} 被施加了 {banType} 封禁,时长 {minutes} 分钟,原因: {reason}");
}
void OnXMBanExpired(ulong playerId, string banType)
void OnXMBanExpired(ulong playerId, string banType)
{
Puts($"玩家 {playerId} 的 {banType} 封禁已解除");
}
bool API_IsBanned(ulong playerId, string banType)
bool isMuted = (bool)XMBanSystem?.Call("API_IsBanned", player.userID, "mute");
if (isMuted)
{
Puts("该玩家当前被禁言");
}
Dictionary<string, object> API_GetBanInfo(ulong playerId)
| Key 格式 | 详情字段 |
|---|---|
| freeze | remaining(秒), reason |
| mute | remaining(秒), reason |
| loot | remaining(秒), reason |
| deploy | remaining(秒), reason |
| gather | remaining(秒), reason |
| craft | remaining(秒), reason |
| mount | remaining(秒), reason |
| wear | remaining(秒), reason |
| team | remaining(秒), reason |
| plant | remaining(秒), reason |
| damage_{类型} | remaining(秒), reason, type |
| command_{指令} | remaining(秒), reason, cmd |
| item_{简称}_{皮肤ID} | remaining(秒), reason, shortname, skin |
| permission_{权限名} | remaining(秒), reason, perm, display |
var info = XMBanSystem?.Call("API_GetBanInfo", player.userID) as Dictionary<string, object>;
if (info != null && info.Count > 0)
{
foreach (var kvp in info)
{
var detail = kvp.Value as Dictionary<string, object>;
Puts($"封禁: {kvp.Key}, 剩余: {detail["remaining"]}秒, 原因: {detail["reason"]}");
}
}
bool API_BanPlayer(ulong playerId, string banType, int minutes, string reason)
XMBanSystem?.Call("API_BanPlayer", targetId, "mute", 60, "刷屏");
bool API_BanPlayerDamage(ulong playerId, int minutes, string dmgType, string reason)
XMBanSystem?.Call("API_BanPlayerDamage", targetId, 120, "玩家", "恶意击杀");
bool API_BanPlayerCommand(ulong playerId, int minutes, string cmd, string reason)
XMBanSystem?.Call("API_BanPlayerCommand", targetId, 60, "trade", "滥用交易");
bool API_BanPlayerItem(ulong playerId, int minutes, string shortName, ulong skinId, string reason)
XMBanSystem?.Call("API_BanPlayerItem", targetId, 1440, "explosive.timed", (ulong)0, "恶意炸家");
bool API_BanPlayerPermission(ulong playerId, int minutes, string perm, string display, string reason)
XMBanSystem?.Call("API_BanPlayerPermission", targetId, 60, "plugin.vip", "VIP权限", "违规使用");
bool API_UnbanPlayer(ulong playerId, string banType)
bool success = (bool)XMBanSystem?.Call("API_UnbanPlayer", targetId, "freeze");
if (success) Puts("已解除冻结");