我的 Rust 服务器有两个插件一直有冲突,就是 InstantCraft 瞬间合成插件和 HuntRPG 技能插件有冲突,因为技能插件有个技能是允许你加快物品合成速度,但是因为我已经有瞬间合成插件了,所以两个插件就会冲突报错。
其实解决方案也很简单,就是启动服务器后重载 HuntRPG 插件就行了,因为这样的话就会取消注册 HuntRPG 对于合成物品的 Hooks,然后让 InstantCraft 接管合成事件。但是每次都要自己手动执行一次 o.reload HuntRPG
就很麻烦,有没有办法让它自动完成呢?
刚开始我上网查了一下,有人说把 InstantCraft 加入到 HuntRPG 的依赖项里面,就可以让 InstantCraft 优先于 HuntRPG 加载,但是我试了一下这个方法并没有效果,由于命名问题(H 优先于 I),HuntRPG 还是会提前加载。
后来我又想到了一个以前在 Minecraft 服务器里常用的方法,就是在 InstantCraft 的 Init 方法里面,通过调用服务器命令实现重载 HuntRPG,然后就可以完美解决这个问题了,代码如下:
#region Oxide Hooks
private void Init()
{
ConsoleSystem.Run(ConsoleSystem.Option.Server.Quiet(), "o.reload HuntRPG");
permission.RegisterPermission(permUse, this);
}
完美,现在不会报错了。
感谢分享