• 欢迎加入MineBBS QQ讨论群:点击查看所有的官方讨论群
  • 我们将于近期对服务器进行迁移,服务可能中断至多2日。请各位安排好自己的访问计划,造成不便敬请谅解!
  • MineBBS入站考试已经上线!想要成为【正式会员】解锁更多功能吗?快来参与吧!【点我去看】
ALStall —— GUI玩家摆摊系统 | 多摊位 | 区域摆摊 | Folia支持

原创 付费 经济 ALStall —— GUI玩家摆摊系统 | 多摊位 | 区域摆摊 | Folia支持 1.2.0

请登录后获取
版权类型
原创
插件中文名称
AL摆摊
插件英文名称
ALStall
原帖地址
#
支持的核心(服务端)
  1. Spigot
  2. Paper
  3. Folia
  4. Purpur
语言支持
中文(简体)
前置组件
适配版本(Java)
  1. 最新版本
  2. 26.x
  3. 1.21

ALStall
GUI摆摊 / 多摊位独立管理 / 自由区域与固定点位 / SQLite与MySQL / Folia支持
不是简单生成一个村民商店,而是一套围绕玩家摊位、区域租赁、商品仓库和服务器经济设计的摆摊系统。
适用于:生存服 / 经济服 / RPG服 / 养老服 / 商业街 / 主城市场 / Folia 或 Luminol 服务端


插件简介
ALStall 是一款面向 Paper / Purpur / Folia / Luminol 等服务端的 GUI 玩家摆摊插件。玩家可以创建自己的多个摊位,每个摊位都有独立名称、介绍、图标、商品、仓库、资金和实体。
插件支持两种摆摊区域:一种是自由区域,玩家可以在区域内任意位置生成自己的摊位实体;另一种是 fixed 固定点位区域,由管理员提前设置待租点位,玩家右键待租实体后选择自己的摊位进行租赁。
摊位实体只是展示与交互入口,不保存真实商品。实体过期、管理员删除区域、服务器重启、实体被异常清理时,只会影响实体本身,玩家的摊位数据、商品和资金仍保存在数据库中。
  • 支持玩家创建多个摊位,每个摊位独立管理
  • 支持 SQLite / MySQL 保存摊位、商品、仓库、资金、区域和实体数据
  • 支持 free 自由区域与 fixed 固定点位区域
  • fixed 待租实体右键租赁,租赁后绑定玩家自己的指定摊位
  • 支持 Vault 金币和 PlayerPoints 点券,用于租金、颜色购买等功能
  • 商品支持出售模式和收购模式
  • 出售收入可按税率扣税,税后收入自动进入对应摊位资金
  • 收购模式从摊位资金付款,收购到的物品进入对应商品仓库
  • 商品仓库只允许放入和商品模板完全相同的物品,防止当云仓库使用
  • 上架商品时只保存商品模板和价格,不会扣除玩家手中物品,库存从 0 开始
  • 支持名称颜色、介绍颜色、实体发光颜色,支持权限与购买
  • 支持渐变色,渐变色可单独要求权限
  • 支持 CustomModelData、CraftEngine、ItemsAdder、Oraxen 自定义材质
  • 支持自定义菜单、shape 布局、自定义按钮和多动作触发
  • 支持 Folia 区域线程调度,插件声明 folia-supported

核心亮点
模块说明适合场景
多摊位系统一个玩家可以拥有多个摊位,每个摊位有不同商品、名字、介绍、资金和实体商人职业、VIP摊位、多店铺玩法
自由区域管理员创建 free 区域后,玩家可在区域内任意位置生成自己的摊位实体主城市场、玩家集市、开放商业区
固定点位管理员创建 fixed 区域和待租点位,玩家右键待租实体租赁固定商铺、摊位竞租、主城店铺
数据库保存摊位、商品、资金、仓库库存、活跃实体、区域和点位都保存到数据库长期运营服务器
实体只是入口摊位实体到期后自动删除,商店数据仍可通过指令和 GUI 管理减少主城长期实体堆积
商品仓库每个商品有自己的库存仓库,只能放入同类物品防云仓库、防乱塞物品
收购与出售同一个商品可设置为出售模式或收购模式玩家商店、材料回收、自动收货摊位
资金管理每个摊位有独立资金,收入自动进入摊位资金,收购从摊位资金扣款店铺经济、收购资金控制
颜色与发光名称颜色、介绍颜色、实体发光颜色可由权限控制,也可配置购买VIP外观、点券消耗
Folia兼容实体操作和调度按 Folia / Paper 环境处理Folia / Luminol 区域线程服务器
第三方领地限制区域外随地摆摊可检测 Residence、Dominion、WorldGuard、GriefPrevention、Lands、Towny、PlotSquared防止玩家在别人领地乱摆摊

玩家如何使用
打开摊位 GUI:
代码:
/stall
/alstall
玩家基础流程:
  • 输入 `/stall` 打开自己的摊位列表
  • 如果没有摊位,点击创建新摊位,或使用 `/stall create [编号]`
  • 进入某个摊位后,可以修改名称、介绍、颜色、图标、开摊状态和实体
  • 点击商品界面,选择空商品位进行上架
  • 上架时先手持要作为商品模板的物品,设置价格和模式,然后确认上架
  • 确认上架后库存为 0,不会扣除手上物品
  • 进入商品仓库,手动放入与商品模板完全相同的物品作为库存
  • 生成摊位实体后,其他玩家右键实体即可打开商店购买或出售物品
摊位管理界面功能:
  • 商品界面:管理商品槽位和商品仓库
  • 修改名字:左键输入新名字,右键选择名字颜色
  • 商店介绍:左键输入介绍,右键选择介绍颜色
  • 开摊/闭摊:闭摊后其他玩家不能购买或出售,即使已经打开 GUI 也会被阻止
  • 生成/删除实体:每个摊位只能有一个实体,删除实体需要聊天确认
  • 资金管理:查看收入、存入资金、提取资金
  • 设置图标:手持物品后输入确认,把物品作为摊位图标
  • 实体发光:可开启/关闭实体发光,右键设置发光颜色

自由区域与固定点位
free 自由区域:
管理员创建 free 区域后,玩家可以在区域内任意位置生成自己的摊位实体。区域可以设置租金,玩家生成实体时按区域租金扣费。
代码:
/stalladmin region create market free 100
fixed 固定点位:
管理员创建 fixed 区域后,可以在区域内创建固定待租点位。没有摊主时,待租实体手持绿宝石,玩家右键后选择自己的摊位租赁。
代码:
/stalladmin region create shop fixed 500
/stalladmin plot create shop
/stalladmin plot wand shop
fixed 点位的租金默认使用区域租金;如果管理员在 `plot create` 或 `plot wand` 后面输入租金,则使用单独点位租金。
区域优先级:
  • ALStall 自己的摆摊区域优先级最高
  • 如果玩家在 ALStall 区域内摆摊,不检查禁摆世界和第三方领地限制
  • 区域外随地摆摊需要 `alstall.spawn.anywhere` 权限
  • 区域外默认租金为 `100.0`,可在配置中修改
  • 区域外仍会检查禁摆世界和第三方领地限制
  • 玩家在自己的领地,或拥有对应领地 build/成员/信任权限时,可以摆摊

商品与仓库规则
规则说明
上架不扣物品上架时只保存手持物品的模板和价格,库存从 0 开始,需要玩家手动放入仓库
同类物品限制仓库只能放入与商品模板完全相同的物品,支持自定义名称、Lore、NBT、CE、ItemsAdder、Oraxen 等物品识别
仓库页数默认 1 页,权限 `alstall.warehouse.<页数>` 可解锁更多页,配置默认上限 10 页
最大库存按仓库可用 B 槽数量乘以物品原版最大堆叠数计算,例如普通物品 64、末影珍珠 16、装备 1
下架限制商品库存不为 0 时不能下架,必须先手动取空仓库
防连点GUI 点击冷却默认 0.2 秒,可防连点器疯狂切换界面
防异常点击菜单内会拦截拖拽、数字键、双击收集、副手交换、丢弃键等特殊点击
出售模式:
其他玩家付款购买库存,收入扣除税率后进入这个摊位的商店资金。
收购模式:
其他玩家把同类物品出售给摊位,插件从摊位资金付款,物品进入这个商品仓库。仓库满了或资金不足时会停止收购。

实体与全息
摊位实体默认是村民,但插件会关闭 AI、重力和碰撞,使实体固定在原地,不会有原版职业行为,不会自己移动。
  • 实体默认存在 6 小时,到期后自动删除实体和全息,不删除商店数据
  • 实体死亡、数据丢失、区域删除、过期时,全息会一起清理
  • 管理员删除区域后,会清理该区域内摊位实体,但保留玩家摊位和商品数据
  • TextDisplay 全息默认透明背景,支持亮度、透明度和可见范围设置
  • 全息最后一行可显示剩余到期时间,例如 6天1时20分
  • 实体视线可平滑看向附近玩家,默认每 tick 小步转向,只看 3 格内最近玩家
  • 全息可见范围默认 45 格
相关配置示例:
代码:
stall:
  entity-life-hours: '6h'
  hologram:
    background-alpha: 0
    view-range: 45.0
    full-bright: true
  look-at:
    enabled: true
    radius: 3.0
    interval-ticks: 1
    smooth-step-degrees: 6.0

自定义菜单与材质
插件菜单已经拆分到独立文件夹,方便服主单独修改每个界面。
代码:
plugins/ALStall/menus/stall_list.yml
plugins/ALStall/menus/stall_manage.yml
plugins/ALStall/menus/products.yml
plugins/ALStall/menus/warehouse.yml
plugins/ALStall/menus/listing.yml
plugins/ALStall/menus/funds.yml
plugins/ALStall/menus/shop.yml
plugins/ALStall/menus/rent_select.yml
plugins/ALStall/menus/color_select.yml
plugins/ALStall/menus/glow_color_select.yml
支持的材质写法:
代码:
# 原版材质
type: 'CHEST'
# CustomModelData
type: 'PAPER'
custom_model_data: 10001
# CraftEngine
craftengine: 'namespace:item_id'
ce: 'namespace:item_id'
# ItemsAdder
itemsadder: 'namespace:item_id'
ia: 'namespace:item_id'
# Oraxen
oraxen: 'item_id'
# 兼容旧写法
plugin_item: 'ce:namespace:item_id'
plugin_item: 'ia:namespace:item_id'
plugin_item: 'oraxen:item_id'
自定义按钮:
  • 菜单使用 `title / shape / items` 格式
  • 可以在 shape 中添加新的单字符按钮
  • 支持左键、右键、Shift+左键、Shift+右键动作
  • 支持多个动作顺序执行
  • 支持发送消息、玩家命令、控制台命令、播放声音、打开其他 GUI、延迟和关闭菜单

颜色、渐变色与购买
颜色选择界面参照 AL 系列插件风格,支持翻页、权限显示和 Shift+右键购买。
项目说明
名字颜色右键修改摊位名称颜色
介绍颜色右键修改摊位介绍颜色
实体发光颜色右键设置实体发光颜色
渐变色渐变色可配置独立权限 `alstall.color.gradient`
购买方式支持 Vault 金币或 PlayerPoints 点券
默认购买配置示例:
代码:
color-purchase:
  enabled: true
  colors:
    enabled: true
    currency: 'vault'
    price: 500.0
  glow:
    enabled: true
    currency: 'vault'
    price: 1000.0
  glow-feature:
    enabled: true
    currency: 'vault'
    price: 500.0
  permission-grant:
    commands:
      - 'lp user %player% permission set %permission% true'

数据库与防刷说明
ALStall 的商品库存不依赖 GUI 里显示的物品本身,而是以数据库库存为准。
  • 购买商品时,数据库先扣库存,成功后才给买家物品
  • 出售给摊位时,插件先扣除卖家的同类物品,再通过数据库事务增加库存和扣除摊位资金
  • 闭摊后,即使买家已经打开商店界面或正在聊天输入数量,也无法继续交易
  • 仓库取出时先扣数据库库存,再把物品交给摊主
  • 仓库放入时先验证同类物品和容量,再增加数据库库存并扣除玩家手上/背包物品
  • 拖拽、数字键、双击收集、副手交换等特殊菜单操作会被取消
  • 商品下架必须先手动清空库存,避免大量物品一次性掉落
跨服提醒:
如果多服共用摊位数据,请使用 MySQL。SQLite 只建议单服使用。跨服环境下还需要保证同一个 UUID 不会在多个子服同时在线,或者使用可靠的跨服背包同步方案;否则任何涉及玩家背包的交易插件都会有额外风险。

安装说明
推荐环境:
项目说明
JavaJava 21 或更高
服务端Paper / Purpur / Folia / Luminol 等 1.20+ 服务端
经济Vault + 经济插件,可选;PlayerPoints 可选
数据库默认 SQLite,可切换 MySQL
自定义材质CraftEngine / ItemsAdder / Oraxen 可选
安装步骤:
  • 将 `ALStall.jar` 放入服务器 `plugins` 文件夹
  • 启动服务器,生成 `plugins/ALStall/` 配置目录
  • 按需求修改 `config.yml`、`messages/zh_CN.yml`、`menus/*.yml`
  • 如果使用 MySQL,请先在 `database` 中填写连接信息
  • 如果使用颜色购买、租金和商品交易,请安装 Vault + 经济插件,或安装 PlayerPoints
  • 使用 `/stalladmin reload` 重载配置,或重启服务器
生成的配置文件:
代码:
plugins/ALStall/config.yml
plugins/ALStall/messages/zh_CN.yml
plugins/ALStall/messages/en_US.yml
plugins/ALStall/menus/*.yml
plugins/ALStall/menus_en_US/*.yml
plugins/ALStall/stalls.db

依赖与兼容
依赖是否必须用途
Vault + 经济插件可选租金、商品交易、金币购买颜色
PlayerPoints可选点券购买颜色
CraftEngine可选自定义 GUI 图标和摊位图标
ItemsAdder可选自定义 GUI 图标和摊位图标
Oraxen可选自定义 GUI 图标和摊位图标
Residence可选区域外摆摊领地检测
Dominion可选区域外摆摊领地检测
WorldGuard可选区域外摆摊区域保护检测
GriefPrevention可选区域外摆摊领地检测
Lands / Towny / PlotSquared可选区域外摆摊领地或城镇地皮检测
不安装可选依赖时,基础摊位、SQLite、原版材质和免费租金仍可使用。

常用命令
玩家命令:
代码:
/stall
/stall create [编号]
/stall manage <编号>
命令说明权限
/stall打开自己的摊位 GUIalstall.use
/stall create [编号]创建自己的摊位alstall.create
/stall manage <编号>管理指定编号摊位alstall.use
管理员命令:
代码:
/stalladmin wand
/stalladmin open <玩家名>
/stalladmin reload
/stalladmin help region
/stalladmin help plot
/stalladmin help entity
区域命令:
代码:
/stalladmin region create <名称> [free|fixed] [租金]
/stalladmin region list
/stalladmin region delete <名称或ID>
fixed 点位命令:
代码:
/stalladmin plot create <区域名称或ID> [租金]
/stalladmin plot wand <区域名称或ID> [租金]
/stalladmin plot list [区域名称或ID]
/stalladmin plot delete <点位ID>
实体清理命令:
代码:
/stalladmin entity remove
/stalladmin entity remove <内部摊位ID>
/stalladmin entity remove <玩家名>
/stalladmin entity remove <玩家名> <摊位编号>

常用权限
权限默认说明
alstall.use所有玩家允许打开玩家摊位 GUI
alstall.create所有玩家允许创建自己的摊位
alstall.spawn所有玩家允许在摆摊区域生成摊位实体
alstall.spawn.anywhereOP允许在 ALStall 区域外生成自由摊位,但仍受禁摆世界和领地限制
alstall.buy所有玩家允许右键摊位实体购买或出售商品
alstall.color所有玩家允许修改自己摊位名字和介绍颜色
alstall.color.allOP允许使用所有名字/介绍颜色
alstall.color.gradientOP允许购买和使用渐变色
alstall.glow关闭允许开启自己摊位实体发光,玩家可在 GUI 中 Shift+右键购买
alstall.glow.color.allOP允许使用所有实体发光颜色
alstall.adminOP管理员命令、区域管理、重载配置,并绕过禁摆世界和领地限制
alstall.limit.bypassOP跳过摊位、商品位和仓库页数权限限制,但仍不超过菜单/配置上限
alstall.listing-filter.bypassOP绕过商品上架名字、Lore、附魔黑名单过滤
数字权限:
代码:
alstall.stalls.<数量>      # 可拥有多少个摊位,例如 alstall.stalls.3
alstall.items.<数量>       # 每个摊位可上架多少个商品,例如 alstall.items.10
alstall.warehouse.<页数>   # 每个商品仓库可用多少页,例如 alstall.warehouse.2

适合购买的人群
  • 你希望服务器有玩家自助摆摊和玩家市场
  • 你希望玩家可以拥有多个独立摊位,而不是只能开一个商店
  • 你需要主城商业街、固定商铺或自由摆摊区域
  • 你希望摊位实体到期自动清理,减少实体长期堆积
  • 你需要 SQLite / MySQL 保存长期商店数据
  • 你希望商品支持出售和收购两种模式
  • 你需要独立商品仓库,并防止玩家把仓库当云仓库
  • 你需要 Folia / Luminol 兼容
  • 你需要 CustomModelData、CraftEngine、ItemsAdder、Oraxen 自定义材质支持
  • 你希望颜色、渐变色、实体发光能接入权限和点券/金币购买
不太适合的人群
  • 你只需要一个纯指令商店,不需要 GUI
  • 你不希望使用任何数据库保存摊位数据
  • 你希望商店实体永久存在且不会过期
  • 你的跨服环境允许同一个 UUID 同时在多个子服在线,并且没有统一背包同步
  • 你不想配置区域、权限、菜单或经济

购买前建议:
  • 确认服务器使用 Java 21 或更高版本
  • 确认服务端为 Paper / Purpur / Folia / Luminol 等 1.20+ 兼容服务端
  • 如果要使用付费租金、商品交易或颜色购买,请安装 Vault + 经济插件,或安装 PlayerPoints
  • 如果多服共用摊位数据,请使用 MySQL,不建议跨服共用 SQLite
  • 如果启用区域外随地摆摊,建议同时安装并测试服务器正在使用的领地插件
  • 更新前建议备份 `plugins/ALStall/` 配置目录和数据库文件

更新与配置注意事项
  • 玩家可创建摊位数量会同时受 `alstall.stalls.<数量>` 和 `menus/stall_list.yml` 中 S 槽数量限制
  • 每个摊位可上架商品数量会同时受 `alstall.items.<数量>` 和 `menus/products.yml` 中 B 槽数量限制
  • 每个商品仓库页数受 `alstall.warehouse.<页数>` 和 `stall.max-warehouse-pages-cap` 限制,默认最多 10 页
  • 区域现在按管理员选择的三维范围判断,创建区域时请选低点和高点
  • 实体到期只删除实体和全息,不删除玩家商店、商品和资金
  • 商品下架前必须先清空库存,库存不为 0 时不会下架
  • 上架商品不会扣除手持物品,库存需要到商品仓库手动放入
  • 配置、语言更新后会自动补齐缺少的配置项

ALStall
让玩家摆摊不只是一个右键商店,而是可以长期运营、可租赁、可管理、可美化的服务器市场系统。
  • 喜欢
反馈: 没烦恼
作者
Allen_Linong
查看
588
首次发布
最后更新

评分

5.00 星 3 次评分

Allen_Linong 的其他资源

最新更新

  1. ALStall-更新

    新增 新增多货币版本(分离版本-测试版) 优化与修复 修复reload指令无法再后台使用
  2. ALStall-更新

    优化与修复 修复部分小问题
  3. ALStall-更新

    新增 新增摆摊实体续费功能,玩家可延长摆摊实体的存在时间。 新增最多续费时间权限,可通过权限限制玩家能够续费的最长时间。 新增点券上架权限,使用点券上架物品时需要拥有对应权限。...

最新评价

维护周期很短,出现bug不到2小时就修复,真牛👍,给作者敬业点赞
插件功能很好,希望能有兼容1.20.1的版本
首先从功能上来说,相比于其他需要玩家在线摆摊的插件来说,这个插件支持玩家离线摆摊,租用摊位即可,而且npc可以设置为多种生物模型,能改名,还能根据权限限制来让玩家消耗对应货币来给商店设置高亮和特殊颜色的店名以及选择不同实体,同时还能自定义摆摊区让玩家在规定位置摆摊,方便管理。30块钱的插件非常值得。
再从开发者态度上来说,本人从插件1.0.0版本开始使用,开发者十分活跃,修bug的速度非常快,而且很乐意接受用户建议。
总体来说,如果你有推出官方摆摊区,玩家自由摆摊区的需求,本人非常推荐购买这款插件,也希望有更多的人入手这款插件并一同促进该插件的发展与进步
后退
顶部 底部