📦 包
代表当前包的类
🗿Static Class
This is a Static Class. Access it's methods directly with
.. It's not possible to spawn new instances.🧑💻API Source
This page is auto-generated! The Functions, Properties and Events described here are defined in our GitHub's API Repository! Feel free to commit suggestions and changes to the source .json API files!
🗿 静态函数
| Returns | Name | Description | |
|---|---|---|---|
Export | 使任何变量在全局作用域中可用 | ||
FlushPersistentData | 立即将待处理的持久化数据更改刷新到磁盘中 | ||
| string | GetCompatibilityVersion | 返回包的兼容性版本 | |
| table of string | GetDirectories | 获取此包中所有目录的列表 | |
| table of string | GetFiles | 获取此包中所有文件的列表 | |
| string | GetName | 返回包的名称/路径 | |
| table | GetPersistentData | 从磁盘获取持久化值 | |
| string | GetTitle | 返回包的标题 | |
| string | GetVersion | 返回包的版本 | |
| boolean | IsUnloading | 返回当前包是否正在卸载 | |
| function | LoadFile | 编译一个 .lua 文件并返回一个用于运行该文件的函数 | |
ReloadClientFile | 从 Client/ 或 Shared/ 文件夹重新加载文件并向客户端发送更新后的版本,触发其上的 FileReload 事件 | ||
| any | Require | 加载一个 .lua 文件 | |
SetPersistentData | 设置一个将保存到磁盘的持久化值 | ||
| function | Subscribe | Subscribes to an Event | |
Unsubscribe | 退订此特定类和此特定包中所有已订阅的事件,可选择传递函数以仅退订该回调 |

Export
使任何变量在全局作用域中可用
Package.Export(variable_name, value)
Parameters
| Type | Parameter | Default | Description |
|---|---|---|---|
| string | variable_name | Required parameter | 要导出的变量名称 |
| any | value | Required parameter | 要在全局作用域中设置的值 |

FlushPersistentData
立即将待处理的持久化数据更改刷新到磁盘中
Package.FlushPersistentData()

GetCompatibilityVersion
返回包的兼容性版本
local ret = Package.GetCompatibilityVersion()
Returns
| Type | Description |
|---|---|
| string | 包的兼容性版本 |

GetDirectories
获取此包中所有文件的列表,可选择使用筛选器
local ret = Package.GetDirectories(path_filter?)
Parameters
| Type | Parameter | Default | Description |
|---|---|---|---|
| string | path_filter? | | 路径过滤器 |

GetFiles
获取此包中所有文件的列表,可选择使用筛选器
local ret = Package.GetFiles(path_filter?, extension_filter?)
Parameters
| Type | Parameter | Default | Description |
|---|---|---|---|
| string or table | path_filter? | | 路径过滤器 |
| string | extension_filter? | | 示例:.lua |

GetName
返回包的名称/路径
local ret = Package.GetName()
Returns
| Type | Description |
|---|---|
| string | 包的名称/路径 |

GetPersistentData
从磁盘获取持久化值
local ret = Package.GetPersistentData(key?)
Parameters
| Type | Parameter | Default | Description |
|---|---|---|---|
| string | key? | | 用于获取数据的键 |
Returns
| Type | Description |
|---|---|
| table | 来自磁盘的持久化值 |
See also SetPersistentData.

GetTitle
返回包的标题
local ret = Package.GetTitle()
Returns
| Type | Description |
|---|---|
| string | 包的标题 |

GetVersion
返回包的版本
local ret = Package.GetVersion()
Returns
| Type | Description |
|---|---|
| string | 包的版本 |

IsUnloading
返回当前包是否正在卸载
local ret = Package.IsUnloading()
Returns
| Type | Description |
|---|---|
| boolean | No description provided |

LoadFile
编译一个 .lua 文件并返回一个用于运行该文件的函数。适用于在沙箱环境中加载文件。
支持与 Package.Require 相同的搜索路径。
local ret = Package.LoadFile(file_path)
Parameters
| Type | Parameter | Default | Description |
|---|---|---|---|
| string | file_path | Required parameter | 要编译的脚本文件路径 |
Returns
| Type | Description |
|---|---|
| function | 用于运行脚本的已编译函数,允许你为该脚本传入一个环境 env 表 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.

ReloadClientFile
从Client/或Shared/文件夹重新加载文件并向客户端发送更新后的版本,触发其上的 FileReload 事件
重新加载的文件将被重新缓存,并由新连接的客户端正常下载
请注意,此方法确实会占用主网络通道,因此不建议在生产环境中频繁或对大文件使用,因为这可能会导致网络拥堵和延迟峰值。它主要用于开发目的,以便在客户端文件上进行更快的迭代,而无需重新加载整个包
Package.ReloadClientFile(file_path)
Parameters
| Type | Parameter | Default | Description |
|---|---|---|---|
| string | file_path | Required parameter | 相对于包根目录的文件路径 |
See also FileReload.

Require
加载一个 .lua 文件。注意,此方法会缓存结果,因此后续调用将返回缓存的值。
我们目前支持 5 个搜索器,按以下顺序查找:
- 相对于
current-file-path/- 相对于
current-package/Client/或current-package/Server/(取决于你所在的位置)- 相对于
current-package/Shared/- 相对于
current-package/- 相对于
Packages/注:客户端将只能下载并访问
Client/和Shared/文件夹。
local ret = Package.Require(file_path, force_load?)
Parameters
| Type | Parameter | Default | Description |
|---|---|---|---|
| string | file_path | Required parameter | 要加载的脚本文件路径 |
| boolean | force_load? | false | 是否强制加载此文件,即使它已经被加载过 |
Returns
| Type | Description |
|---|---|
| any | 包含文件中的任何返回值 |
See also LoadFile.

SetPersistentData
设置一个将保存到磁盘的持久化值。注意,实际刷新到磁盘的操作是延迟进行的,可能不会立即发生
Package.SetPersistentData(key, value)
Parameters
| Type | Parameter | Default | Description |
|---|---|---|---|
| string | key | Required parameter | 要将数据索引到的键。可以用“.”分隔以设置子元素。 |
| any | value | Required parameter | 要在键上设置的值 |
See also GetPersistentData.

Subscribe
Subscribes to an Event
local ret = Package.Subscribe(event_name, callback)
Parameters
| Type | Parameter | Default | Description |
|---|---|---|---|
| string | event_name | Required parameter | 要订阅的事件 |
| function | callback | Required parameter | 事件发生时运行的回调函数 |
Returns
| Type | Description |
|---|---|
| function | 函数回调 |

Unsubscribe
退订此特定类和此特定包中所有已订阅的事件,可选择传递函数以仅退订该回调
Package.Unsubscribe(event_name, callback?)
Parameters
| Type | Parameter | Default | Description |
|---|---|---|---|
| string | event_name | Required parameter | 要退订的事件 |
| function | callback? | nil | 用于专门退订的可选回调 |
🚀 事件
| Name | Description | |
|---|---|---|
FileReload | 当使用 Package.ReloadClientFile() 直接从服务器重新加载文件时调用 | |
Load | 在此包加载时调用 | |
Unload | 在此包卸载时调用 |

FileReload
当使用 Package.ReloadClientFile() 直接从服务器重新加载文件时调用
你可以使用该路径通过 Package.Require(path, true) 在运行时重新加载文件
Package.Subscribe("FileReload", function(file_path)
-- FileReload was called
end)
Arguments
| Type | Argument | Description |
|---|---|---|
| string | file_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)