搜索

LIEMC 完整 Wiki

EMC 兑换、回收、解锁、收藏、跨服、命令、权限、配置与常见问题。

LIEMC Logo

一款围绕 EMC 货币体系打造的 Minecraft 服务器资源经济插件。
通过物品回收、解锁兑换、收藏检索、自动补充和跨服同步,为服务器构建更稳定的资源循环生态。


插件概述

LIEMC 是一款面向 Paper / Luminol 26.1.2 的 EMC 资源经济插件,适合生存服、空岛服、百人服和多子服生态使用。

插件以 EMC 作为资源价值单位,让玩家可以将物品出售为 EMC,再使用 EMC 兑换已解锁的资源。相比传统商店,LIEMC 更强调“先获得、再解锁、后复购”的成长节奏,能够让服务器资源流通更自然,也更适合长期运营。

如果你的服务器需要一套能承载资源回收、方块兑换、玩家成长、跨服同步的经济系统,LIEMC 可以作为核心底座使用。


功能亮点

1. EMC 兑换系统

玩家可以通过 GUI 商店消耗 EMC 获取资源。

支持:

  • EMC 商店菜单
  • 分页浏览
  • 左键获取 1 个
  • 右键获取一组或配置数量
  • EMC 余额显示
  • 已解锁数量显示
  • 自动补充开关入口
  • 搜索入口
  • 收藏入口

购买限制:

  • 默认必须先解锁再兑换
  • 未解锁物品无法直接购买
  • 搜索页和收藏页可直接购买已解锁物品

2. 物品回收系统

玩家可以把可转换物品出售为 EMC。

支持:

  • /emc convert 打开转换界面
  • 手动放入物品转换
  • /emc sellall 一键出售背包内所有可转换物品
  • 出售成功后自动获得 EMC
  • 出售成功后自动解锁对应物品

适合场景:

  • 清理玩家背包中过量资源
  • 让低价值资源重新进入经济循环
  • 给长期挖矿、建筑、刷怪产出提供统一价值入口

3. 多条件解锁思路

当前默认解锁条件为:玩家必须先出售一次对应物品。

配置项:

unlock:
  require-before-withdraw: true

效果:

  • 玩家第一次出售物品时自动解锁
  • 解锁后才能在 EMC 商店复购
  • 管理员可使用 /emc unlockall 为玩家全解锁

这种机制能避免玩家刚进入服务器就直接兑换全部资源,更适合生存服、空岛服和百人服的长期成长节奏。

build.109 起,解锁服务在读取、判断和新写入时统一去除物品 ID 的首尾空格并转为小写,因此可以匹配只有大小写或前后空格差异的历史记录,但不会批量改写历史数据库。

单条或批量解锁写入后,本服会使该玩家的旧缓存失效,并在后续读取时取得完整数据库列表,避免冷缓存下用单条新解锁覆盖完整列表。较慢的旧查询与新解锁交错时,新解锁返回后也不会让旧快照继续留在缓存中。跨服读取采用每玩家 3 秒短缓存,缓存到期后的下一次读取才会重新查询数据库,并非后台实时推送。


4. 收藏与搜索系统

玩家可以对常用物品进行收藏,方便快速查找。

操作:

  • 在 EMC 菜单中 Shift+点击物品收藏
  • 再次 Shift+点击取消收藏
  • 点击“我的收藏”按钮查看收藏列表
  • 使用 /emc search <关键词> 搜索物品

说明:

  • 收藏不会解锁物品
  • 收藏不会绕过购买限制
  • 搜索页和收藏页均可直接购买已解锁物品

5. 自动补充系统

玩家开启自动补充后,当手中物品消耗完时,插件会尝试扣除 EMC 并补充一组。

指令:

/emc autorefill on
/emc autorefill off

适合:

  • 建筑服大量铺方块
  • 空岛服持续放置材料
  • 生存服批量消耗资源

限制:

  • 创造模式不会触发
  • 物品必须存在于 EMC 配置
  • EMC 不足时不会补充

6. 手持物品快速上架

管理员可以直接把主手物品添加进 EMC 商店。

指令:

/emc addheld <id> <emc> [unlockCost] [withdrawAmount]
/emc addhand <id> <emc> [unlockCost] [withdrawAmount]

示例:

/emc addheld custom_block 100
/emc addheld magic_ingot 500 0 16

添加后自动完成:

  • 写入本服配置
  • 按物品类型保留或留空 name
  • 保留 CustomModelData
  • 保留原始 lore
  • 自动追加 EMC 商店 lore
  • 自动分类排序
  • 自动上架 EMC 商店
  • 自动打开搜索页定位新物品
  • 写入数据库同步表

build.108 起,/emc addheld 与 /emc addhand 按以下规则处理商品名称:

  • 原版物品没有显式 displayName 或 itemName 时,name 保持为空,由客户端按玩家自己的语言显示原版名称,不再写入 Stone 等英文回退名。
  • 原版物品存在显式自定义名时,继续保留该名称。
  • CraftEngine 物品的 name 固定留空,以 CraftEngine 每次创建物品时提供的最新名称为唯一来源,避免 LIEMC 保存的旧名称覆盖新名称。
  • 跨服同步记录缺少 name 时默认按空名称处理,不再补英文材质名。

为避免覆盖管理员刻意配置的英文名称,历史条目不会自动改写。需要让旧条目改用客户端语言时,请手持没有显式自定义名称的对应原版物品,使用原 ID、正确价格与选项重新执行 /emc addheld。使用 MySQL 跨服时还需确认更新已正确写入共享数据库并同步到其他子服;不要只清空本地配置中的 name,否则数据库同步可能重新覆盖本地修改。


7. 跨服同步系统

LIEMC 支持多服连接同一个 MySQL,实现玩家数据和管理员上架物品同步。build.106 已修复 MySQL 8.0 初始化商品 Lore 字段时的 TEXT 默认值兼容问题。

可同步内容:

内容 是否同步
EMC 余额 是
已解锁物品 是
收藏列表 是
自动补充开关 是
/emc addheld 新增商店物品 是
手动修改 config.yml 否
lang.yml 否
菜单布局 否

新增商店物品会写入:

liemc_shop_items

同步方式:

  1. A 服执行 /emc addheld example_block 100
  2. A 服立即上架并写入 MySQL
  3. B 服执行 /emc reload
  4. B 服自动拉取并写入本地配置
  5. B 服 EMC 商店出现该物品

8. Folia / Luminol 支持

插件已在 plugin.yml 中声明:

folia-supported: true

适合 Paper / Luminol 26.1.2 环境使用。


指令列表

玩家指令

指令 说明
/emc 打开 EMC 获取商店
/liemc 打开 EMC 获取商店
/emc convert 打开 EMC 转换界面
/emc search <关键词> 搜索 EMC 物品
/emc sellall 一键出售背包可转换物品
/emc balance 查看 EMC 余额
/emc pay <玩家> <数量> 转账 EMC
/emc autorefill 切换自动补充
/emc autorefill on 开启自动补充
/emc autorefill off 关闭自动补充

管理员指令

指令 说明
/emc reload 重载配置并拉取跨服商店物品
/emc give <玩家> <数量> 给予玩家 EMC
/emc giveall <数量> 给所有在线玩家 EMC
/emc balance <玩家> 查看玩家 EMC
/emc unlockall [玩家] 为玩家解锁全部物品
/emc stats 查看物品统计
/emc addheld <id> <emc> [unlockCost] [withdrawAmount] 添加手持物品并上架
/emc addhand <id> <emc> [unlockCost] [withdrawAmount] 添加手持物品并上架
/emc removeitem <id> 下架物品并同步到其他子服
/emc delitem <id> /emc removeitem 的别名
/emc sortitems 整理物品分类顺序

所有指令均支持 Tab 补全。


权限节点

权限 默认 说明
liemc.use true 使用基础 EMC 功能
liemc.admin OP 使用管理命令

liemc.admin 自动继承 liemc.use。


兼容与依赖

项目 说明
服务端 Paper / Luminol
目标版本 26.1.2
Folia 支持加载
存储 SQLite / MySQL
经济 internal / Vault / PlayerPoints
变量 PlaceholderAPI

运行库通过 plugin.yml libraries 加载:

  • HikariCP
  • SQLite JDBC
  • MySQL Connector/J

可选软依赖:

  • Vault
  • PlayerPoints
  • PlaceholderAPI

如果 Vault 或 PlayerPoints 不存在,插件会自动回退到内置 EMC,避免启动失败。


配置示例

存储配置

storage:
  type: "mysql"

  mysql:
    host: "127.0.0.1"
    port: 3306
    database: "liemc"
    username: "root"
    password: "1234"
    use-ssl: false
    pool-size: 10

SQLite 适合单服,MySQL 适合跨服。

经济来源

currency:
  provider: "internal"

可选:

  • internal
  • vault
  • playerpoints

解锁配置

unlock:
  require-before-withdraw: true

自定义 GUI

build.98 起,获取、搜索、收藏和转换菜单统一由独立的 plugins/LIEMC/gui.yml 管理。服主可以配置标题、大小、槽位、按钮、Lore、渐变、动态变量、CustomModelData 和点击指令。

详细字段、完整示例、迁移规则与排错步骤见自定义 GUI 完整教程。


全局商品 Lore

build.106 中,未填写非空商品 lore 的条目统一继承 config.yml 的 item-display.default-lore。修改这一处并执行 /emc reload,即可让全部继承项一起更新。

item-display:
  default-lore:
    - ""
    - "&7价格:&e{emc} 点 EMC"
    - "&7状态:&f{favorite}"
    - ""
    - '&a左键获取:&f{left_amount} 个\n&6右键获取:&f{right_amount} 个'
    - "&dShift+点击:&f{favorite_action}"

空字符串或只含空格的列表项会显示为空白分隔行;同一项内的 \n 会拆成多行。单个商品可用 description-lore 在全局模板前增加专属说明,也可以用非空 lore 完整覆盖模板。详细规则见配置说明。

按权限设置出售价格

build.107 起可通过 sell-pricing 为不同权限设置出售倍率,例如普通玩家八折、VIP 九折、SVIP 原价回收。只影响转换菜单与一键出售,不改变购买、自动补充、退款或转账。

功能默认关闭;多个规则命中时取 priority 最大的一条,同级取配置靠前者,不叠乘。配置、授权和 GUI 变量示例见出售权限折扣与倍率。


物品配置示例

- id: "grass_block"
  material: "GRASS_BLOCK"
  name: "&f草方块"
  emc: 2
  withdraw-amount: 64
  unlock-cost: 0.0
  category: "01_建筑方块/01_自然基础"

此条目未配置 lore,因此会继承上方全局模板。需要保留物品自己的原始说明时,使用 description-lore;只有确实需要独立排版时才填写非空 lore。


PlaceholderAPI

变量 说明
%liemc_balance% 玩家 EMC 余额
%liemc_unlocked% 玩家已解锁物品数量

安装方法

  1. 将插件 jar 放入 plugins 文件夹。
  2. 启动服务器生成配置。
  3. 修改 plugins/LIEMC/config.yml;需要调整菜单时修改 plugins/LIEMC/gui.yml。
  4. 重启服务器或执行 /emc reload。
  5. 输入 /emc 打开菜单测试。

当前构建:

LIEMC-0.1.0+build.109.jar

升级至 build.109 时请保留数据库和现有配置;历史解锁 ID 只做兼容匹配,不会自动重写历史库。相关修复与验证边界见build.109 更新说明。

build.108 的名称规则继续保留;历史英文名称不会自动改写,正确处理方式见build.108 更新说明。从 build.105 升级时仍由 build.106 自动完成可恢复的字段迁移,请勿手动删除 liemc_shop_items。详见安装与更新和build.106 更新说明。


常见问题

为什么物品不能兑换?

默认开启先解锁后兑换。玩家需要先出售一次该物品,解锁后才能兑换。

收藏会不会解锁物品?

不会。收藏只用于快速查找,不改变解锁状态。

搜索页和收藏页能购买吗?

可以。已解锁物品可直接购买,未解锁物品仍会被拦截。

如何删除 EMC 商店物品?

推荐执行 /emc removeitem <id>,该指令会同时删除本地配置、数据库上架记录,并写入跨服下架记录。

也可以直接从 config.yml 的 items 中删除完整物品段,然后执行 /emc reload。插件不会再从默认配置强制补回已删除物品。

跨服新增物品为什么没同步?

请确认:

  1. 所有子服连接同一个 MySQL。
  2. 新物品是通过 /emc addheld 或 /emc addhand 添加。
  3. 其他子服执行了 /emc reload 或重启。
  4. 控制台没有数据库同步失败提示。

手动改 config.yml 会同步吗?

新增或删除物品 ID 后执行 /emc reload 会同步变更。修改已有物品的 EMC 或属性时,建议使用 /emc addheld 更新,以确保跨服数据同步。


推荐使用场景

生存服

开启解锁机制,让资源复购建立在玩家实际获取过的基础上。

空岛服

通过 EMC 管理泥土、沙子、木材、矿物等资源价值,减少重复刷物资的枯燥感。

百人服

使用 MySQL 统一余额、解锁、收藏和上架物品,让多个子服共享同一套 EMC 生态。

建筑服

可以关闭解锁限制,让玩家更自由地兑换建筑材料。


一句话介绍

LIEMC 是一款为百人服和多子服生态打造的 EMC 资源经济插件,集物品回收、解锁兑换、收藏检索、自动补充、手持上架与跨服同步于一体。