Structs Guild
Important: Entity IDs containing dashes (like 3-1, 4-5) are misinterpreted as flags by the CLI parser. All transaction commands in this skill use -- before positional arguments to prevent this.
Guild Rank System
Guilds use a numeric rank system to determine authority. Lower number = higher privilege.
| Rank | Meaning |
|---|
| 1 | Maximum privilege (guild creator) |
| 2–100 |
Custom ranks assigned by leadership |
| 101 | Default rank assigned on join |
| 0 | Unset / no rank |
Rank-based authority: a player can only modify members whose rank is strictly worse (higher number) than their own. The guild creator (rank 1) can manage everyone.
Procedure
- 1. Discover guilds —
structsd query structs guild-all or structsd query structs guild [id]. - Create guild — Requires PermReactorGuildCreate (524288) on the reactor and PermSubstationConnection (1024) on the entry substation.
structsd tx structs guild-create TX_FLAGS -- [reactor-id] [endpoint] [entry-substation-id]. - Membership — Join:
structsd tx structs guild-membership-join -- [guild-id] [infusion-id,infusion-id2,...] (use --player-id, --substation-id if needed). New members receive default guild rank (101). Proxy join: structsd tx structs guild-membership-join-proxy -- [guild-id] [player-id] [infusion-ids]. Invite flow: structsd tx structs guild-membership-invite -- [guild-id] [player-id] → invitee runs structsd tx structs guild-membership-invite-approve -- [guild-id] or structsd tx structs guild-membership-invite-deny -- [guild-id]. Request flow: structsd tx structs guild-membership-request -- [guild-id] → owner runs structsd tx structs guild-membership-request-approve -- [guild-id] [player-id] or structsd tx structs guild-membership-request-deny -- [guild-id] [player-id]. Kick: structsd tx structs guild-membership-kick -- [guild-id] [player-id]. - Rank management — Update a member's rank:
structsd tx structs player-update-guild-rank TX_FLAGS -- [player-id] [guild-rank]. Requires PermAdmin (2) on guild, or rank-based authority (actor rank strictly better than target's current rank). Update entry rank (rank assigned to new joiners): structsd tx structs guild-update-entry-rank TX_FLAGS -- [new-entry-rank]. Requires PermUpdate (4) on guild; new rank must be >= caller's own rank. - Settings — See Commands Reference:
guild-update-endpoint, guild-update-entry-substation-id, guild-update-join-infusion-minimum (and -minimum-by-invite, -minimum-by-request), guild-update-owner-id. All use -- before positional args. - Central Bank — Mint:
structsd tx structs guild-bank-mint TX_FLAGS -- [alpha-amount] [token-amount] (no guild-id — signer's guild is used implicitly; both amounts are raw integers). Redeem: structsd tx structs guild-bank-redeem -- [guild-id] [amount]. Confiscate and burn: structsd tx structs guild-bank-confiscate-and-burn -- [guild-id] [address] [amount].
Provider Access Control via Guild Rank
To restrict a provider to members of a specific guild at a minimum rank, use guild rank permissions instead of direct player grants:
CODEBLOCK0
This grants PermProviderAgreementCreate (262144) on the provider to any member of the specified guild at or above the given rank. To revoke:
CODEBLOCK1
Commands Reference
| Action | Command |
|---|
| Create | INLINECODE29 |
| Join |
structsd tx structs guild-membership-join -- [guild-id] [infusion-ids] |
| Join proxy |
structsd tx structs guild-membership-join-proxy -- [guild-id] [player-id] [infusion-ids] |
| Invite |
structsd tx structs guild-membership-invite -- [guild-id] [player-id] |
| Invite approve/deny |
structsd tx structs guild-membership-invite-approve/deny -- [guild-id] |
| Invite revoke |
structsd tx structs guild-membership-invite-revoke -- [guild-id] [player-id] |
| Request |
structsd tx structs guild-membership-request -- [guild-id] |
| Request approve/deny |
structsd tx structs guild-membership-request-approve/deny -- [guild-id] [player-id] |
| Request revoke |
structsd tx structs guild-membership-request-revoke -- [guild-id] |
| Kick |
structsd tx structs guild-membership-kick -- [guild-id] [player-id] |
| Update guild rank |
structsd tx structs player-update-guild-rank -- [player-id] [guild-rank] |
| Update entry rank |
structsd tx structs guild-update-entry-rank -- [new-entry-rank] |
| Update endpoint |
structsd tx structs guild-update-endpoint -- [guild-id] [endpoint] |
| Update entry substation |
structsd tx structs guild-update-entry-substation-id -- [guild-id] [substation-id] |
| Update infusion minimums |
structsd tx structs guild-update-join-infusion-minimum/minimum-by-invite/minimum-by-request -- [guild-id] [value] |
| Update owner |
structsd tx structs guild-update-owner-id -- [guild-id] [new-owner-player-id] |
| Bank mint |
structsd tx structs guild-bank-mint -- [alpha-amount] [token-amount] (signer's guild, raw integers) |
| Bank redeem |
structsd tx structs guild-bank-redeem -- [guild-id] [amount] |
| Bank confiscate |
structsd tx structs guild-bank-confiscate-and-burn -- [guild-id] [address] [amount] |
| Set guild rank permission |
structsd tx structs permission-guild-rank-set -- [object-id] [guild-id] [permission] [rank] |
| Revoke guild rank permission |
structsd tx structs permission-guild-rank-revoke -- [object-id] [guild-id] [permission] |
TX_FLAGS: INLINECODE50
Verification
- - Guild:
structsd query structs guild [id] — members, settings, owner. - Membership applications:
structsd query structs guild-membership-application-all or by ID. - Bank collateral:
structsd query structs guild-bank-collateral-address [guild-id] — verify reserves. - Guild rank permissions:
structsd query structs guild-rank-permission-by-object-and-guild [object-id] [guild-id] — verify rank-based access.
Error Handling
- - Insufficient infusion: Guild may require minimum infusion to join. Query guild for
joinInfusionMinimum; meet requirement or get invite (bypass). - Already member: Cannot join twice. Check
guild-membership-application status. - Mint/redeem failed: Verify guild has sufficient Alpha Matter collateral for mint; sufficient tokens for redeem.
- Permission denied: Only guild owner (or delegated address) can update settings, approve requests, mint/redeem. Rank-based operations require actor rank strictly better than target.
- Rank too low:
guild-update-entry-rank requires new rank >= caller's own rank. Cannot set entry rank higher than your own authority.
See Also
公会系统
重要提示:包含连字符的实体ID(如3-1、4-5)会被CLI解析器误识别为标志。本技能中的所有交易命令在位置参数前均使用--以防止此问题。
公会等级系统
公会使用数字等级系统来确定权限。数字越小 = 权限越高。
由管理层分配的自定义等级 |
| 101 | 加入时分配的默认等级 |
| 0 | 未设置/无等级 |
基于等级的权限:玩家只能修改等级严格低于自己(数字更大)的成员。公会创建者(等级1)可以管理所有人。
流程
- 1. 发现公会 — structsd query structs guild-all 或 structsd query structs guild [id]。
- 创建公会 — 需要在反应堆上拥有PermReactorGuildCreate(524288)权限,并在入口变电站上拥有PermSubstationConnection(1024)权限。structsd tx structs guild-create TXFLAGS -- [reactor-id] [endpoint] [entry-substation-id]。
- 成员管理 — 加入:structsd tx structs guild-membership-join -- [guild-id] [infusion-id,infusion-id2,...](如需可使用--player-id、--substation-id)。新成员获得默认公会等级(101)。代理加入:structsd tx structs guild-membership-join-proxy -- [guild-id] [player-id] [infusion-ids]。邀请流程:structsd tx structs guild-membership-invite -- [guild-id] [player-id] → 被邀请者执行 structsd tx structs guild-membership-invite-approve -- [guild-id] 或 structsd tx structs guild-membership-invite-deny -- [guild-id]。申请流程:structsd tx structs guild-membership-request -- [guild-id] → 所有者执行 structsd tx structs guild-membership-request-approve -- [guild-id] [player-id] 或 structsd tx structs guild-membership-request-deny -- [guild-id] [player-id]。踢出:structsd tx structs guild-membership-kick -- [guild-id] [player-id]。
- 等级管理 — 更新成员等级:structsd tx structs player-update-guild-rank TXFLAGS -- [player-id] [guild-rank]。需要在公会上拥有PermAdmin(2)权限,或基于等级的权限(操作者等级严格高于目标当前等级)。更新入口等级(分配给新加入者的等级):structsd tx structs guild-update-entry-rank TXFLAGS -- [new-entry-rank]。需要在公会上拥有PermUpdate(4)权限;新等级必须 >= 调用者自身等级。
- 设置 — 参见命令参考:guild-update-endpoint、guild-update-entry-substation-id、guild-update-join-infusion-minimum(以及-minimum-by-invite、-minimum-by-request)、guild-update-owner-id。所有命令在位置参数前均使用--。
- 中央银行 — 铸造:structsd tx structs guild-bank-mint TXFLAGS -- [alpha-amount] [token-amount](无公会ID — 默认使用签名者的公会;两个金额均为原始整数)。赎回:structsd tx structs guild-bank-redeem -- [guild-id] [amount]。没收并销毁:structsd tx structs guild-bank-confiscate-and-burn -- [guild-id] [address] [amount]。
通过公会等级进行提供商访问控制
要限制提供商仅对特定公会中达到最低等级的成员可用,请使用公会等级权限而非直接授予玩家权限:
structsd tx structs permission-guild-rank-set --from [key] --gas auto -y -- [provider-id] [guild-id] 262144 [rank]
这将向指定公会中达到或超过给定等级的所有成员授予提供商的PermProviderAgreementCreate(262144)权限。要撤销:
structsd tx structs permission-guild-rank-revoke --from [key] --gas auto -y -- [provider-id] [guild-id] 262144
命令参考
| 操作 | 命令 |
|---|
| 创建 | structsd tx structs guild-create -- [reactor-id] [endpoint] [entry-substation-id] |
| 加入 |
structsd tx structs guild-membership-join -- [guild-id] [infusion-ids] |
| 代理加入 | structsd tx structs guild-membership-join-proxy -- [guild-id] [player-id] [infusion-ids] |
| 邀请 | structsd tx structs guild-membership-invite -- [guild-id] [player-id] |
| 邀请批准/拒绝 | structsd tx structs guild-membership-invite-approve/deny -- [guild-id] |
| 撤销邀请 | structsd tx structs guild-membership-invite-revoke -- [guild-id] [player-id] |
| 申请 | structsd tx structs guild-membership-request -- [guild-id] |
| 申请批准/拒绝 | structsd tx structs guild-membership-request-approve/deny -- [guild-id] [player-id] |
| 撤销申请 | structsd tx structs guild-membership-request-revoke -- [guild-id] |
| 踢出 | structsd tx structs guild-membership-kick -- [guild-id] [player-id] |
| 更新公会等级 | structsd tx structs player-update-guild-rank -- [player-id] [guild-rank] |
| 更新入口等级 | structsd tx structs guild-update-entry-rank -- [new-entry-rank] |
| 更新端点 | structsd tx structs guild-update-endpoint -- [guild-id] [endpoint] |
| 更新入口变电站 | structsd tx structs guild-update-entry-substation-id -- [guild-id] [substation-id] |
| 更新注入最小值 | structsd tx structs guild-update-join-infusion-minimum/minimum-by-invite/minimum-by-request -- [guild-id] [value] |
| 更新所有者 | structsd tx structs guild-update-owner-id -- [guild-id] [new-owner-player-id] |
| 银行铸造 | structsd tx structs guild-bank-mint -- [alpha-amount] [token-amount](签名者的公会,原始整数) |
| 银行赎回 | structsd tx structs guild-bank-redeem -- [guild-id] [amount] |
| 银行没收 | structsd tx structs guild-bank-confiscate-and-burn -- [guild-id] [address] [amount] |
| 设置公会等级权限 | structsd tx structs permission-guild-rank-set -- [object-id] [guild-id] [permission] [rank] |
| 撤销公会等级权限 | structsd tx structs permission-guild-rank-revoke -- [object-id] [guild-id] [permission] |
TX_FLAGS:--from [key-name] --gas auto --gas-adjustment 1.5 -y
验证
- - 公会:structsd query structs guild [id] — 成员、设置、所有者。
- 成员申请:structsd query structs guild-membership-application-all 或按ID查询。
- 银行抵押品:structsd query structs guild-bank-collateral-address [guild-id] — 验证储备金。
- 公会等级权限:structsd query structs guild-rank-permission-by-object-and-guild [object-id] [guild-id] — 验证基于等级的访问权限。
错误处理
- - 注入不足:公会可能要求最低注入量才能加入。查询公会的joinInfusionMinimum;满足要求或获得邀请(可绕过)。
- 已是成员:不能重复加入。检查guild-membership-application状态。
- 铸造/赎回失败:验证公会有足够的Alpha物质抵押品用于铸造;有足够的代币用于赎回。
- 权限被拒绝:只有公会所有者(或授权地址)可以更新设置、批准申请、铸造/赎回。基于等级的操作要求操作者等级严格高于目标。
- 等级过低:guild-update-entry-rank要求新等级 >= 调用者自身等级。