插件介绍
为插件开发人员提供的简单静态变量 API
This is a simple static (non-file saving) variable system for developers. Useful for plugins intended without file usage.
More to come, cross plugin temporary variable communication etc etc. This is the bones for something special I hope.
主要用途
主要用于imported、API、variables等服务端功能。 本插件由 发布,当前目录记录版本为 v0.1,uMod 累计下载 9,639 次。
适用场景
- 希望扩展原版服务器功能的服主
功能分类
查看 uMod 官方英文简介
Simple static variable API for plugin developers
官方配置示例
// Main Hooks
InitPlugin(Plugin plugin, bool debug = false)
PluginExists(Plugin plugin)
DestroyPlugin(Plugin plugin, bool debug = false)
// General Variable Hooks
SetStaticVariable(Plugin plugin, string variable, string value, bool debug = false)
GetStaticVariable(Plugin plugin, string variable, bool debug = false)
RemoveStaticVariable(Plugin plugin, string variable, bool debug = false)
// Player Variable Hooks
InitPlayer(Plugin plugin, BasePlayer player, bool debug = false)
RemovePlayer(Plugin plugin, BasePlayer player, bool debug = false)
PlayerExists(Plugin plugin, BasePlayer player)
SetStaticPlayerVariable(Plugin plugin, BasePlayer player, string variable, string value, bool debug = false)
GetStaticPlayerVariable(Plugin plugin, BasePlayer player, string variable, bool debug = false)
RemoveStaticPlayerVariable(Plugin plugin, BasePlayer player, string variable, bool debug = false)
PlayerHasVariables(Plugin plugin, BasePlayer player)using System;
using Oxide.Core.Plugins;
namespace Oxide.Plugins
{
[Info("TestPlugin", "Norn", 0.1)]
[Description("Demonstration of MagicVariables.")]
public class TestPlugin : RustPlugin
{
[PluginReference]
Plugin MagicVariables;
Timer uptime_timer;
void OnServerInitialized()
{
if (MagicVariables)
{
if (!Convert.ToBoolean(MagicVariables.Call("PluginExists", this)))
{
MagicVariables.Call("InitPlugin", this, true);
}
uptime_timer = timer.Repeat(1, 0, () => UptimeTimer());
}
}
void OnPlayerInit(BasePlayer player)
{
if (!Convert.ToBoolean(MagicVariables.Call("PlayerExists", this, player)))
{
MagicVariables.Call("InitPlayer", this, player, true);
MagicVariables.Call("SetStaticPlayerVariable", this, player, "connectionTime", "0");
}
}
void OnPlayerDisconnected(BasePlayer player, string reason)
{
if (Convert.ToBoolean(MagicVariables.Call("PlayerExists", this, player)))
{
MagicVariables.Call("RemovePlayer", this, player, true);
}
}
private void Unload()
{
if (uptime_timer != null)
{
uptime_timer.Destroy();
}
MagicVariables.Call("DestroyPlugin", this, true);
}
[ChatCommand("uptime")]
void cmdUptime(BasePlayer player, string cmd, string[] args)
{
if (!Convert.ToBoolean(MagicVariables.Call("PlayerExists", this, player)))
{
MagicVariables.Call("InitPlayer", this, player, true);
MagicVariables.Call("SetStaticPlayerVariable", this, player, "connectionTime", "1");
}
int uptime = Convert.ToInt32(MagicVariables.Call("GetStaticVariable", this, "upTime"));
TimeSpan t = TimeSpan.FromSeconds(uptime);
string answer = string.Format("{0:D2}h:{1:D2}m:{2:D2}s:{3:D3}ms", t.Hours, t.Minutes, t.Seconds, t.Milliseconds);
PrintToChat(player, "<color=yellow>" this.Title "</color>: " answer " <color=green>plugin uptime</color>.");
int player_uptime = Convert.ToInt32(MagicVariables.Call("GetStaticPlayerVariable", this, player, "connectionTime"));
t = TimeSpan.FromSeconds(player_uptime);
answer = string.Format("{0:D2}h:{1:D2}m:{2:D2}s:{3:D3}ms", t.Hours, t.Minutes, t.Seconds, t.Milliseconds);
PrintToChat(player, "<color=yellow>" this.Title "</color>: " answer " <color=green>player uptime</color>.");
}
private void UptimeTimer()
{
int uptime = Convert.ToInt32(MagicVariables.Call("GetStaticVariable", this, "upTime"));
int new_uptime = uptime 1;
MagicVariables.Call("SetStaticVariable", this, "upTime", new_uptime.ToString());
foreach (BasePlayer player in BasePlayer.activePlayerList)
{
if (player != null)
{
int player_uptime = Convert.ToInt32(MagicVariables.Call("GetStaticPlayerVariable", this, player, "connectionTime"));
player_uptime = player_uptime 1;
MagicVariables.Call("SetStaticPlayerVariable", this, player, "connectionTime", player_uptime.ToString());
}
}
}
}
}更新日志
最新版本: v0.1
最后版本发布: 暂无记录
最后更新(条目): 2026-08-27
本站记录 uMod 官方插件信息。完整的历史更新日志请参阅 uMod 官方页面。
安装方法
- 确认服务器已安装 Oxide / uMod 或兼容的 Carbon 框架。
- 登录本站后点击"下载",由本站已校验的本地缓存提供作者发布的文件。
- 将 .cs 文件放入服务器的
oxide/plugins目录。 - 观察服务端控制台,确认插件编译并成功加载。
- 具体配置、权限、指令和依赖请查看原作者的 uMod 页面。
使用前注意
- Rust 更新后,请先确认插件是否仍兼容当前服务端版本。
- 修改配置前建议备份原配置文件,并在测试服验证后再部署到正式服。
- 若插件依赖其他扩展或库,以 uMod 原作者页面的最新说明为准。
- 本站中文内容用于辅助理解,遇到版本差异时以官方英文文档和源码为准。
来源说明
中文介绍由 uMod 官方简介翻译整理。插件著作权、许可证、完整文档和最新发布状态均以原作者及 uMod 官方页面为准。