跳至正文
版本:最新版 - a1.156.0 ⚖️

📦 包

代表当前包的类

🗿Static ClassClient & Server🧑‍💻API Source

🗿 静态函数​

ReturnsNameDescription
Export使任何变量在全局作用域中可用
FlushPersistentData立即将待处理的持久化数据更改刷新到磁盘中
stringGetCompatibilityVersion返回包的兼容性版本
table of stringGetDirectories获取此包中所有目录的列表
table of stringGetFiles获取此包中所有文件的列表
stringGetName返回包的文件夹名称
tableGetPersistentData从磁盘获取持久化值
stringGetTitle返回包的标题
stringGetVersion返回包的版本
booleanIsUnloading返回当前包是否正在卸载
functionLoadFile编译一个 .lua 文件并返回一个用于运行该文件的函数
ReloadClientFile从 Client/ 或 Shared/ 文件夹重新加载文件并向客户端发送更新后的版本,触发其上的 FileReload 事件
anyRequire加载一个 .lua 文件
SetPersistentData设置一个将保存到磁盘的持久化值
functionSubscribe订阅事件
Unsubscribe退订此特定类和此特定包中所有已订阅的事件,可选择传递函数以仅退订该回调

Optimal

Export​

使任何变量在全局作用域中可用
Package.Export(variable_name, value)

Parameters

TypeParameterDefaultDescription
stringvariable_name Required parameter 要导出的变量名称
anyvalue Required parameter 要在全局作用域中设置的值

Slow

FlushPersistentData​

立即将持久化数据的待变更内容刷新保存至磁盘。注:后台会自动执行此操作,无需频繁刷新;由于写入磁盘操作较慢,仅应在确实需要时使用
Package.FlushPersistentData()

Optimal

GetCompatibilityVersion​

返回包的兼容性版本
local ret = Package.GetCompatibilityVersion()

Returns

TypeDescription
string包的兼容性版本

Slow

GetDirectories​

获取此包中所有文件的列表,可选择使用筛选器
local ret = Package.GetDirectories(path_filter?)

Parameters

TypeParameterDefaultDescription
stringpath_filter?
路径过滤器

Returns

TypeDescription
table of string目录列表

Slow

GetFiles​

获取此包中所有文件的列表,可选择使用筛选器
local ret = Package.GetFiles(path_filter?, extension_filter?)

Parameters

TypeParameterDefaultDescription
string or tablepath_filter?
路径过滤器
stringextension_filter?
示例:.lua

Returns

TypeDescription
table of string文件列表

Optimal

GetName​

返回包的文件夹名称
local ret = Package.GetName()

Returns

TypeDescription
string包的名称/路径

Slow

GetPersistentData​

从磁盘获取持久化值
不传参数时返回整个表,传入键名时获取特定的值
local ret = Package.GetPersistentData(key?)

Parameters

TypeParameterDefaultDescription
stringkey?
用于获取数据的键

Returns

TypeDescription
table来自磁盘的持久化值

See also SetPersistentData.


Optimal

GetTitle​

返回包的标题
local ret = Package.GetTitle()

Returns

TypeDescription
string包的标题

Optimal

GetVersion​

返回包的版本
local ret = Package.GetVersion()

Returns

TypeDescription
string包的版本

Optimal

IsUnloading​

返回当前包是否正在卸载
local ret = Package.IsUnloading()

Returns

TypeDescription
boolean当前包是否正在卸载

Slow

LoadFile​

编译一个 .lua 文件并返回一个用于运行该文件的函数。适用于在沙箱环境中加载文件。

支持与 Package.Require 相同的搜索路径。
local ret = Package.LoadFile(file_path)

Parameters

TypeParameterDefaultDescription
stringfile_path Required parameter 要编译的脚本文件路径

Returns

TypeDescription
function运行脚本的已编译函数,允许你为脚本传递环境表 with this format
Package.LoadFile Examples
Loading a .lua file sandboxed
local func = Package.LoadFile("MyScript.lua")

-- Only allows this file to access Console
local my_env = { Console = Console }

local content = func(my_env)

-- Access all global variables set by the script in my_env
my_env.GlobalVariableFromFile...

See also Require.


Slow

ReloadClientFile​

从 Client/ 或 Shared/ 文件夹重新加载文件并向客户端发送更新后的版本,触发其上的 FileReload 事件

重新加载的文件将被重新缓存,并由新连接的客户端正常下载

请注意,此方法确实会占用主网络通道,因此不建议在生产环境中频繁或对大文件使用,因为这可能会导致网络拥堵和延迟峰值。它主要用于开发目的,以便在客户端文件上进行更快的迭代,而无需重新加载整个包
Package.ReloadClientFile(file_path)

Parameters

TypeParameterDefaultDescription
stringfile_path Required parameter 相对于包根目录的文件路径

See also FileReload.


Slow

Require​

加载一个 .lua 文件。注意,此方法会缓存结果,因此后续调用将返回缓存的值。

我们目前支持 5 个搜索器,按以下顺序查找:
  1. 相对于 current-file-path/
  2. 相对于 current-package/Client/ 或 current-package/Server/(取决于你所在的位置)
  3. 相对于 current-package/Shared/
  4. 相对于 current-package/
  5. 相对于 Packages/

注:客户端将只能下载并访问 Client/ 和 Shared/ 文件夹。

local ret = Package.Require(file_path, force_load?)

Parameters

TypeParameterDefaultDescription
stringfile_path Required parameter 要加载的脚本文件路径
booleanforce_load?false
是否强制加载此文件,即使它已经被加载过

Returns

TypeDescription
any包含文件中的任何返回值

See also LoadFile.


Moderate

SetPersistentData​

设置一个将保存到磁盘的持久化值。注意,实际刷新到磁盘的操作是延迟进行的,可能不会立即发生
Package.SetPersistentData(key, value)

Parameters

TypeParameterDefaultDescription
stringkey Required parameter 要将数据索引到的键。可以用“.”分隔以设置子元素。
anyvalue Required parameter 要在键上设置的值

See also GetPersistentData.


Optimal

Subscribe​

订阅事件
local ret = Package.Subscribe(event_name, callback)

Parameters

TypeParameterDefaultDescription
stringevent_name Required parameter 要订阅的事件
functioncallback Required parameter 事件发生时运行的回调函数

Returns

TypeDescription
function函数回调

Optimal

Unsubscribe​

退订此特定类和此特定包中所有已订阅的事件,可选择传递函数以仅退订该回调
Package.Unsubscribe(event_name, callback?)

Parameters

TypeParameterDefaultDescription
stringevent_name Required parameter 要退订的事件
functioncallback?nil
用于专门退订的可选回调

🚀 事件​

NameDescription
FileReload当使用 Package.ReloadClientFile() 直接从服务器重新加载文件时调用
Load在此包加载时调用
Unload在此包卸载时调用

FileReload​

当使用 Package.ReloadClientFile() 直接从服务器重新加载文件时调用

你可以使用该路径通过 Package.Require(path, true) 在运行时重新加载文件
Package.Subscribe("FileReload", function(file_path)
-- FileReload was called
end)

Arguments

TypeArgumentDescription
stringfile_path文件路径

See also ReloadClientFile.


Load​

在此包加载时调用

此事件的触发因情况而异:
  • 当服务器启动或你运行 package reload all 时,该事件仅在所有包加载完毕后才会触发。
  • 在所有其他情况下(package load/reload 或 Package.Load/Reload),该事件会在包加载/重新加载后立即触发。
Package.Subscribe("Load", function()
-- Load was called
end)

Unload​

在此包卸载时调用
Package.Subscribe("Unload", function()
-- Unload was called
end)