Skip to content

Repository files navigation

Lapis-CustomJoinMessage

License: MIT Java Version Spigot Version Folia Version

一个高性能、功能强大的 Minecraft Bukkit/Spigot/Paper/Folia 加入退出消息自定义插件,支持聊天 / 标题 / 动作栏 / Boss血条 / 音效 / 渐变颜色 / 权限组 / 首次加入 / 静默隐身 / PlaceholderAPI 等。

功能特性

  • 自定义加入 / 退出消息:每个玩家可设置个人消息,也支持管理员为他人设置
  • 多种显示方式:聊天广播、私密消息、标题(Title)、动作栏(ActionBar)、Boss血条(BossBar)
  • 音效支持:加入 / 退出可播放自定义音效,可仅对当事人或全服播放
  • 多种消息模式full 完整消息模式 与 prefix_suffix 前后缀模式
  • 权限组模板:VIP / 管理员 / 默认组等,按优先级匹配,各自拥有独立的消息与效果
  • 首次加入(新玩家):自动识别新玩家并发送专属欢迎
  • 静默 / 隐身:拥有指定权限的玩家加入退出不广播(兼容 Essentials 静默)
  • 广播冷却:可设置加入/退出消息冷却,防止刷屏
  • 颜色 / 渐变:标准颜色代码 &a、十六进制 &#RRGGBB、渐变 <gradient:#c1:#c2>文本</gradient>
  • 占位符:内置 %player_name% 等 + 自定义占位符 + 完整 PlaceholderAPI 支持
  • 高性能:内存缓存 + 异步数据库访问(HikariCP 连接池),加载后加入/退出零数据库查询
  • 数据库:SQLite 与 MySQL 双支持,表结构向后兼容 v1.x
  • Folia 支持:自动检测并适配 Folia 区域调度器
  • 热重载/lcjm reload 无需重启服务器
  • PlaceholderAPI 扩展%lapiscjm_join_message% 等变量

安装

  1. Lapis-CustomJoinMessage.jar 放入服务器 plugins/ 目录
  2. 重启服务器(或 /reload
  3. 可选:安装 PlaceholderAPI 以使用 %任意变量%

命令

玩家命令

命令 说明 权限
/setjoin 查看当前加入消息 lapiscjm.use
/setjoin <消息> 设置加入消息 lapiscjm.join.use
/setjoin reset 清除加入消息 lapiscjm.join.use
/setjoin prefix <前缀> / /setjoin suffix <后缀> 前后缀模式 lapiscjm.join.use
/setquit 查看当前退出消息 lapiscjm.use
/setquit <消息> 设置退出消息 lapiscjm.quit.use
/setquit reset 清除退出消息 lapiscjm.quit.use

管理员命令

命令 说明
/lcjm reload 重载配置(配置文件变化会自动备份旧文件)
/lcjm version 查看版本信息
/lcjm permission <玩家> 检查玩家权限
/lcjm group list 列出权限组
/lcjm resetplayer <玩家> [--force] 重置玩家数据
/lcjm listplayers 列出数据库中的玩家(可点击删除)
/lcjm deleteplayer <uuid> 删除玩家数据
/setjoin <玩家> <消息> 为其他玩家设置加入消息
/setquit <玩家> <消息> 为其他玩家设置退出消息

别名:/lcjm 也可用 /cjm/lapiscjm

权限

权限 说明 默认
lapiscjm.use 使用玩家命令 所有玩家
lapiscjm.join.use 设置加入消息 所有玩家
lapiscjm.join.color 加入消息中使用颜色 OP
lapiscjm.quit.use 设置退出消息 所有玩家
lapiscjm.quit.color 退出消息中使用颜色 OP
lapiscjm.admin 管理命令 + 管理他人消息 OP
lapiscjm.admin.others 为他人设置消息 OP
lapiscjm.reload 重载配置 OP
lapiscjm.* 全部权限 OP

兼容旧版权限:customjoinmessage.usecustomjoinmessage.join.use 等仍然有效。

配置示例

# 全局设置
settings:
  enabled: true
  join-enabled: true
  quit-enabled: true
  message-mode: full            # full | prefix_suffix
  hide-default-join-message: true
  hide-default-quit-message: true
  cooldown-seconds: 0           # 广播冷却(秒)

# 默认消息模板(支持多行、渐变、PAPI)
messages:
  join:
    prefix: "&e欢迎 "
    suffix: " 加入服务器!"
    chat:
      - "&e%player_name% &7加入了服务器"
    private: []
    sound:
      enabled: false
      name: "ENTITY_PLAYER_LEVELUP"
      volume: 1.0
      pitch: 1.0
      broadcast: false
    title:
      enabled: false
      title: "&b欢迎回来 %player_name%"
      subtitle: "&f祝你游戏愉快"
      fade-in: 10
      stay: 60
      fade-out: 20
    actionbar:
      enabled: false
      text: ""
    bossbar:
      enabled: false
      text: ""
      color: GREEN
      style: SOLID
      duration-seconds: 5
  quit:
    ... # 结构同 join

# 首次加入(新玩家)
first-join:
  enabled: false
  message:
    chat:
      - "&6&l[新玩家] &e%player_name% &6加入了服务器"
    ...

# 权限组(优先级越大越优先,permission 留空 = 所有玩家)
permission-groups:
  admin:
    priority: 100
    permission: "lapiscjm.admin"
    message:
      join:
        chat:
          - "&4[管理员] &c%player_name% &7加入了服务器"
        sound: ...
        title: ...
      quit:
        chat:
          - "&4[管理员] &c%player_name% &7离开了服务器"
  default:
    priority: 0
    permission: ""
    message:
      join:
        chat:
          - "&7[&a+&7] &6%player_name%"
      quit:
        chat:
          - "&7[&c-&7] &6%player_name%"

# 静默 / 隐身
silent:
  join-permissions: ["essentials.silentjoin"]
  quit-permissions: ["essentials.silentquit"]
  vanish-permissions: ["essentials.vanish"]

# 长度限制(-1 不限,不计算颜色代码)
length-limits:
  full-mode: 50
  prefix: 20
  suffix: 20

# 自定义占位符
custom-placeholders:
  server_name: "我的服务器"
  server_ip: "mc.example.com"

# PlaceholderAPI
placeholders:
  enabled: true

# 数据库
database:
  type: sqlite            # sqlite | mysql
  sqlite:
    file: joinmessages.db
  mysql:
    host: localhost
    port: 3306
    database: minecraft
    username: root
    password: password
    table: joinmessages
    pool-size: 8

占位符

  • %player_name%:玩家名
  • %player_displayname%:显示名
  • %world%:所在世界
  • %uuid%:玩家 UUID
  • %server_name% 等:custom-placeholders 中自定义
  • 所有 PlaceholderAPI 变量(需安装 PAPI)

颜色与渐变

  • 标准颜色:&a&l&r
  • 十六进制:&#FF0000
  • 渐变:<gradient:#ff0000:#00ff00:#0000ff>文本</gradient>(支持任意多个颜色)

数据库兼容

v2.0.0 的表结构与 v1.x 保持一致(joinmessages 表),升级插件后玩家的历史数据自动保留,无需迁移。

构建

要求:JDK 17+,Gradle 9.x

gradle clean build

产物位于 build/libs/Lapis-CustomJoinMessage.jar

更新日志

v2.0.0

  • 全面重构,插件主类更名为 LapisCustomJoinMessage
  • 新增标题 / 动作栏 / Boss血条 / 音效显示
  • 新增渐变颜色支持 <gradient:...>
  • 新增权限组模板系统(优先级匹配)
  • 新增首次加入(新玩家)欢迎
  • 新增静默 / 隐身支持
  • 新增广播冷却
  • 新增自定义占位符
  • 内存缓存 + HikariCP 连接池,显著提升性能
  • 全新命令体系(/lcjm 管理命令),保留 /cjm 别名
  • PlaceholderAPI 扩展标识更新为 lapiscjm
  • 兼容 v1.x 数据库表结构与旧权限节点

许可证

本项目采用 MIT 许可证。

About

强大的 Minecraft Bukkit/Spigot/Folia 插件:自定义加入/退出消息、权限组、颜色代码(Java)

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages