Skip to content

Yet another misc plugin for TShock

License

Notifications You must be signed in to change notification settings

UnrealMultiple/yaaiomni

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chireiden.TShock.Omni & Misc

  • 作者: SGKoishi
  • 出处: github
  • TShock的又一多功能插件集合,包含修复补丁、功能增强、实用工具、调试命令等。

常用功能

  • /whynot 查看玩家最近的权限查询记录,终极解决"需要什么权限"类问题
  • /setlang, /maxplayers 设置服务器语言和最大玩家数
  • /settimeout, /setinterval, /clearinterval, /showdelay 基于定时器自动执行命令
  • /runas 以其他玩家身份执行命令
  • /resetcharacter, /exportcharacter 重置或导出角色数据
  • 聊天防刷屏限制:3条/5秒,5条/20秒(配置项.Mitigation.ChatSpamRestrict

更多特性

  • .PlayerWildcardFormat: 支持/g zenith *all*式通配符
  • .HideCommands.StartupCommands可隐藏命令或设置启动时自动执行
  • .Enhancements.AlternativeCommandSyntax支持/命令1 ; 命令2 ; 命令3.../命令1 && 命令2 && 命令3...语法
  • .Mode.Vanilla.Enabled会为玩家添加原版游戏体验所需权限
  • .CommandRenames: 支持命令别名配置,如{"Chireiden.TShock.Omni.Plugin.Command_PermissionCheck": ["whynot123", "whynot456"]}

高级选项

执行/genconfig可生成完整配置文件。隐藏选项将显示(未修改的条目会在下次启动/重载时恢复隐藏状态)。

Caution

保持默认设置。除非您明确知道修改后果,否则请勿更改

扩展功能

Chireiden.TShock.Omni.Misc插件包含多项随机功能:

  • 基于权限限制特定Boss召唤、队伍状态和PVP状态
  • .LavaHandler防止岩浆刷屏(不阻止岩浆生成,但会在可能生成后立即清除)
  • 可在其他插件的小游戏中使用/echo/_pvp/_team等命令

(翻译说明:保留技术术语原文格式如命令名/config键名;调整了部分长句的语序使其符合中文表达习惯;将被动语态转换为主动表述;补充了必要的说明性文字)

指令

语法 权限 说明
/_gc
/_gc -f
chireiden.omni.admin.gc 触发垃圾回收(-f 强制完整GC)
/_sv chireiden.omni.admin.sv 执行SQLite数据库压缩(VACUUM)
/rbc <消息>
/rawbroadcast <消息>
chireiden.omni.admin.rawbroadcast 发送原始广播消息(无格式)
/listclients chireiden.omni.admin.listclients 列出所有连接的客户端信息
/dumpbuffer <玩家ID> [文件名] chireiden.omni.admin.dumpbuffer 导出玩家网络缓冲区数据到文件
/whereis <命令名> chireiden.omni.admin.whereis 查找命令所属插件和程序集
/kc <玩家ID> chireiden.omni.admin.terminatesocket 强制关闭玩家网络连接
/_ups
/_ups bench
chireiden.omni.admin.upscheck 检查服务器每秒更新次数(bench 运行性能测试)
/_pvp [玩家名] <true/false> chireiden.omni.setpvp
chireiden.omni.admin.setpvp
设置PvP状态(管理员可指定其他玩家)
/_team [玩家名] <队伍ID> chireiden.omni.setteam
chireiden.omni.admin.setteam
设置队伍(0无队伍,1红,2绿,3蓝,4黄,5粉)
/_chat <消息> chireiden.omni.chat 模拟发送游戏内聊天消息
/_csf chireiden.omni.admin.callstackframe 显示当前调用堆栈(调试用)
/genconfig chireiden.omni.admin.genconfig 生成完整配置文件(
显示隐藏选项)
/tileprovider <default|heaptile|constilation|checkedtyped|checkedgeneric> chireiden.omni.admin.tileprovider 切换地图读写接口类型(内存优化)
/ghost [-v|-a|-u] chireiden.omni.ghost 切换幽灵状态(-v: 客户端幽灵 -a: 活动状态 -u: 取消)
/setlang [-g|-t] [语言代码] chireiden.omni.setlang 设置游戏/TShock语言(-g: 仅游戏 -t: 仅TShock)
/maxplayers [数量] chireiden.omni.admin.maxplayers 查看/设置最大玩家数
/runas <玩家> <命令> [-f] chireiden.omni.admin.sudo 以其他玩家身份执行命令(-f: 跳过权限检查)
/resetcharacter [-f] [玩家] chireiden.omni.resetcharacter 重置角色数据(需确认,支持通配符)
/exportcharacter [玩家] chireiden.omni.admin.exportcharacter 导出角色数据为.plr文件
/echo <消息> chireiden.omni.echo 回显消息
/_setperm chireiden.omni.admin.setupperm 应用默认权限设置
/genconfig chireiden.omni.admin.genconfig 生成完整配置文件
/_qbg <命令> [-t] chireiden.omni.admin.runbackground 后台执行命令(-t: 使用Task运行)
/_locked <命令> chireiden.omni.admin.locked 锁定模式执行命令
/whynot [-t|-f|-v] chireiden.omni.whynot 查看权限检查历史(-t: 成功 -f: 失败 -v: 详细堆栈)
/_ping chireiden.omni.ping 测试玩家延迟
/_debugstat chireiden.omni.admin.debugstat 输出调试统计信息
/settimeout <命令> <间隔> chireiden.omni.timeout 延迟执行命令(单位: 游戏帧)
/setinterval <命令> <间隔> chireiden.omni.interval 循环执行命令
/clearinterval <ID> chireiden.omni.cleartimeout 取消延迟/循环命令
/showdelay chireiden.omni.showtimeout 查看待执行命令列表
/trytileframe [x] [y] chireiden.omni.admin.trytileframe 测试TileFrame计算(可能造成卡顿)
/inspecttileframe chireiden.omni.admin.inspecttileframe 启用TileFrame检查(高级调试)

配置

配置文件位置:tshock/chireiden.omni.json

{
  // 是否在加载/重载时显示配置文件内容
  "ShowConfig": false,

  // 是否记录所有异常日志
  "LogFirstChance": false,

  // 日志时间格式(遵循.NET DateTime格式规范)
  "DateTimeFormat": "yyyy-MM-dd HH:mm:ss.fff",

  // 是否优先处理网络数据包(可能影响其他插件)
  "PrioritizedPacketHandle": true,

  // 匹配所有玩家的通配符格式(避免直接使用"*"可能与命令冲突)
  "PlayerWildcardFormat": [
    "*all*"
  ],

  // 匹配服务器控制台的通配符格式
  "ServerWildcardFormat": [
    "*server*",
    "*console*"
  ],

  // 隐藏的命令列表(不会显示在帮助菜单中)
  "HideCommands": [
    "whynot",
    "_debugstat",
    "resetcharacter", 
    "_ping",
    "echo",
    "_setperm",
    "inspecttileframe",
    "_qbg",
    "_locked"      
  ],

  // 服务器启动时自动执行的命令列表
  "StartupCommands": [],

  // 命令重命名映射表(键为原始命令全名,值为别名列表)
  "CommandRenames": {},

  // 功能增强设置
  "Enhancements": {
    // 是否定期清理未使用的客户端对象以节省内存
    "TrimMemory": true,

    // 是否启用替代命令语法(支持多命令分隔符)
    "AlternativeCommandSyntax": true,

    // 是否允许命令行参数覆盖配置文件
    "CLIoverConfig": true,

    // 是否修复默认语言检测问题
    "DefaultLanguageDetect": true,

    // TShock更新提示处理方式
    // 可选值: Silent(静默), Disabled(禁用), AsIs(保持原样)
    "SuppressUpdate": "Silent",

    // 网络套接字实现类型(影响内存使用)
    // 可选值: Vanilla(原版), TShock, AsIs, Unset, HackyBlocked, 
    //        HackyAsync, AnotherAsyncSocket, AnotherAsyncSocketAsFallback
    "Socket": "AnotherAsyncSocketAsFallback",

    // 玩家重名处理方式
    // 可选值: First(踢先登录者), Second(踢后登录者), Both(都踢), 
    //        None(都不踢), Known(踢未验证IP者), Unhandled(不处理)
    "NameCollision": "Unhandled",

    // 地图图格提供器
    // 可选值: AsIs(默认), CheckedTypedCollection, CheckedGenericCollection
    "TileProvider": "AsIs",

    // 是否支持超大型世界(可能导致原版客户端崩溃)
    "ExtraLargeWorld": true,

    // 帮助菜单中显示命令别名的级别(0=关闭)
    "ShowCommandAlias": 0,

    // 是否支持封禁规则中的正则表达式和IP掩码
    "BanPattern": true,

    // 是否尝试解析已加载程序集的引用
    "ResolveAssembly": true,

    // 是否启用IPv6双栈支持
    "IPv6DualStack": true
  },

  // 数据包调试设置
  "DebugPacket": {
    // 是否记录传入数据包
    "In": false,

    // 是否记录传出数据包
    "Out": false,

    // 是否记录原始字节流
    "BytesOut": false,

    // 异常显示级别
    // 可选值: None(不显示), Uncommon(非常见异常), All(所有异常)
    "ShowCatchedException": "Uncommon"
  },

  // 健壮性修复设置
  "Soundness": {
    // 是否限制弹幕类物品修改地形(如液体炸弹)
    "ProjectileKillMapEditRestriction": true,

    // 是否要求快速堆叠需要建筑权限
    "QuickStackRestriction": true,

    // 是否要求编辑告示牌需要建筑权限
    "SignEditRestriction": true,

    // 是否要求与图格实体交互需要建筑权限
    "ObjectInteractionRestriction": true,

    // 编码设置(-1=自动检测,0=UTF8)
    "UseDefaultEncoding": 0,

    // 是否强制使用英文命令(解决多语言环境问题)
    "UseEnglishCommand": true,

    // 是否允许原版本地化命令(需UseEnglishCommand启用)
    "AllowVanillaLocalizedCommand": true
  },

  // 权限系统设置
  "Permission": {
    "Log": {
      // 是否启用权限查询日志
      "Enabled": true,

      // 每个玩家保存的日志条数
      "LogCount": 50,

      // 是否记录重复权限检查
      "LogDuplicate": false,

      // 区分相同权限检查的时间间隔(秒)
      "LogDistinctTime": 1.0,

      // 是否记录堆栈轨迹
      "LogStackTrace": false
    },
    "Preset": {
      // 是否启用预设权限组
      "Enabled": true,

      // 是否始终应用预设权限
      "AlwaysApply": false,

      // 是否仅对管理员显示调试信息
      "DebugForAdminOnly": false
    }
  },

  // 游戏模式设置
  "Mode": {
    // 建筑模式设置
    "Building": {
      // 是否启用建筑模式
      "Enabled": false
    },

    // PvP模式设置
    "PvP": {
      // 是否强制开启PvP
      "Enabled": false
    },

    // 原版体验模式设置
    "Vanilla": {
      // 是否启用原版模式
      "Enabled": false,

      // 自动授予的权限列表
      "Permissions": [
        "tshock.account.register",  // 注册账号
        "tshock.account.login",     // 登录
        /* 其他权限省略... */
      ],

      // 是否允许旅途模式能力
      "AllowJourneyPowers": false,

      // 是否忽略反作弊检测
      "IgnoreAntiCheat": false,

      // 原版反作弊设置
      "AntiCheat": {
        // 是否启用原版反作弊
        "Enabled": false
      }
    }
  },

  // 问题缓解设置(警告:修改可能影响稳定性)
  "Mitigation": {
    // 是否禁用所有缓解措施
    "DisableAllMitigation": false,

    // 是否处理移动端物品栏同步问题(内存优化)
    "InventorySlotPE": true,

    // 是否修复移动端药水冷却绕过问题
    "PotionSicknessPE": true,

    // 是否阻止移动端使用物品时切换栏位
    "SwapWhileUsePE": true,

    // 是否回滚移动端物品切换操作(可能导致延迟)
    "SwapWhileUsePEHandleAttempt": false,

    // 聊天刷屏限制配置(格式:速率限制/时间窗口)
    "ChatSpamRestrict": [
      "1.6/5",  // 5秒内不超过1.6条消息
      "4/20"    // 20秒内不超过4条消息
    ],

    // 是否限制NPCBuff更新频率(防止网络风暴)
    "NpcUpdateBuffRateLimit": false,

    // 终端标题抑制模式
    // 可选值: Disabled(禁用), Smart(智能), Enabled(启用)
    "SuppressTitle": "Smart",

    // 连接频率限制配置
    "ConnectionLimit": [
      "3/5",   // 5秒内不超过3次连接
      "15/60"  // 60秒内不超过15次连接
    ],

    // 受限网络类型
    // 可选值: All(所有连接), Public(仅公网IP), None(不限制)
    "LimitedNetwork": "Public",

    // 连接状态超时设置(秒)
    "ConnectionStateTimeout": {
      "0": 1.0,  // 套接字创建后1秒
      "1": 4.0   // 收到连接请求后总共4秒
    },

    // 禁用玩家受伤处理方式
    // 可选值: AsIs(原样), Hurt(允许受伤), Ghost(幽灵模式)
    "DisabledDamageHandler": "Hurt",

    // 专家模式金币处理方式
    // 可选值: DisableValue(禁用金币值), ServerSide(服务端处理), AsIs(原样)
    "ExpertExtraCoin": "ServerSide",

    // 是否保持REST连接活跃
    "KeepRestAlive": true,

    // 部分更新配置处理方式
    // 可选值: Ignore(忽略), Replace(替换)
    "AcceptPartialUpdatedConfig": "Replace",

    // 是否检测物品ID溢出(防作弊)
    "OverflowWorldGenItemID": false,

    // 是否清除堆栈溢出时的图格数据(调试用)
    "ClearOverflowWorldGenStackTrace": false,

    // 堆栈溢出时是否保存地图快照
    "DumpMapOnStackOverflowWorldGen": true,

    // 是否使用非递归方式统计图格(防崩溃)
    "NonRecursiveWorldGenTileCount": true,

    // 是否允许旅途/非旅途玩家共存
    "AllowCrossJourney": false,

    // 是否在没有SSC时启用装备切换
    "LoadoutSwitchWithoutSSC": true,

    // 数据包频率限制配置(null=禁用)
    "PacketSpamLimit": null,

    // 是否严格限制套接字发送(防内存泄漏)
    "RestrictiveSocketSend": true,

    // 是否回显未变化的物品栏(防复制漏洞)
    "EchoUnchangedItem": true,

    // 是否允许重载IL钩子(可能不稳定)
    "ReloadILHook": false,

    // 是否检测递归图格破坏
    "RecursiveTileBreak": false,

    // 是否启用增量式箱子堆叠同步(实验性)
    "IncrementalChestStack": false,

    // 是否允许非原版名称更改(防作弊)
    "AllowNonVanillaNameChange": false,

    // 是否允许非标准连接状态包(兼容性选项)
    "AllowNonVanillaJoinState": false
  }
}

配置文件位置:tshock/chireiden.omni.misc.json

{
  // 功能增强设置
  "Enhancements": {
    // 是否同步客户端和服务端版本号(用于绕过版本验证)
    // 注意:启用可能导致兼容性问题
    "SyncVersion": false
  },

  // 岩浆处理设置 
  "LavaHandler": {
    // 是否启用岩浆处理系统(防止岩浆刷屏)
    "Enabled": false,

    // 是否允许地狱石生成岩浆
    "AllowHellstone": false,

    // 是否允许脆蜂蜜块生成岩浆
    "AllowCrispyHoneyBlock": false,

    // 是否允许地狱蝙蝠死亡生成岩浆
    "AllowHellbat": false,

    // 是否允许熔岩史莱姆死亡生成岩浆
    "AllowLavaSlime": false,

    // 是否允许熔岩蝙蝠死亡生成岩浆
    "AllowLavabat": false
  },

  // 权限控制系统  
  "Permission": {
    // 行为限制设置
    "Restrict": {
      // 是否启用权限限制系统
      "Enabled": false,

      // 是否限制队伍切换
      // 权限:
      // - chireiden.omni.toggleteam
      // - chireiden.omni.toggleteam.[队伍ID]
      "ToggleTeam": true,

      // 是否限制PvP状态切换
      // 权限:
      // - chireiden.omni.togglepvp
      // - chireiden.omni.togglepvp.[true/false]
      "TogglePvP": true,

      // 是否限制装备栏同步
      // 权限:chireiden.omni.syncloadout
      "SyncLoadout": true,

      // 是否限制Boss召唤
      // 权限:
      // - tshock.npc.summonboss
      // - chireiden.omni.summonboss.[BossID]
      "SummonBoss": true
    },

    // 预设权限组设置
    "Preset": {
      // 是否允许受限玩家使用预设权限
      // 影响群体:默认访客组(DefaultGuestGroup)
      "AllowRestricted": true
    }
  }
}

反馈

About

Yet another misc plugin for TShock

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 99.2%
  • PowerShell 0.8%