- 版权类型
- 原创
- 插件中文名称
- 涡轮弹窗
- 插件英文名称
- WoPopUp
- 原帖地址
- #
- 支持的核心(服务端)
- Spigot
- Paper
- Folia
- Purpur
- 语言支持
- 中文(简体)
- 前置组件
- 无
- 适配版本(Java)
- 最新版本
- 26.x
- 1.21
- 1.20
- 1.19
- 1.18
- 1.17
- 1.16
- 1.15
- 1.14
- 1.13
- 1.12
- 1.11
- 1.10
- 1.9
- 1.8
[MD]
# WoPopUp
**进服弹窗 —— 让每一条公告都真的被看见。**
适用版本:**1.8.8 ~ 26.x** | 服务端:**Spigot / Paper / Purpur / Folia** |不需要任何前置|**支持服务端在接入 Velocity / BungeeCord 的情况下使用**
---
## 你是不是一直在为这些事发愁
- 服务器更新了,在群里发了重要公告,结果一多半玩家压根没看,回头还在问"改了什么",“这个功能怎么用”,“世界怎么重置了”。
- 活动开了三天,还有人在问"活动奖励在哪领"。
- 在聊天栏上喊公告,一分钟就被刷屏冲走了;写在主城全息文字、告示牌上,根本没人走近。
- 玩家一进服就埋头苦玩,你的充值活动、充值广告、引导说明他们从来没注意到。
问题不在于你写得不好,而在于**你没找到一个能让玩家必须先看一眼的地方**。
WoPopUp 就是为这种情况设计的,**把公告变成玩家进服后第一眼看见的东西,且玩家必须点击“关闭”或“本次弹窗不再弹出”按钮,才能关闭弹窗。**
你的充值活动、重要更新、玩家帮助、处罚通知,统统可以塞进这个插件,还可以加入可执行的命令。
---
***安装必看:<u>管理员默认有`wopopup.bypass`,进服不会自动弹出,请先设置此权限为false。LuckPerms插件可直接执行这个命令 `lp user <管理员ID> permission set wopopup.bypass false` 来设置。</u>***
---
## 功能特性有哪些
玩家进服 → 检测到有玩家没有点过“不再提示”的弹窗 → 你配置的界面弹出来
- 方便好配置的GUI界面弹窗。
- 界面的标题、格数、边框,每个按钮用什么物品、叫什么名字、写什么说明、执行什么命令,**全部可配置**。
- **直接按 ESC 关不掉**,想关,只能点你给的按钮。
- **不用担心每次弹出会让玩家厌烦**,只要点了“本次弹窗不再弹出”,就不会继续在进服时弹出同一个弹窗,**并且不影响服主设置新的弹窗通知**。
- 支持配**很多个弹窗**,每次进服只弹**其中一个**,可以按优先级挑,也可以随机。
---
## 安装:把 jar 丢进去就行
首次启动会自带一个示例弹窗,进服就能看到。
管理员默认有`wopopup.bypass`,进服不会自动弹出,请先设置此权限为false。LuckPerms插件可直接执行这个命令 `lp user <管理员ID> permission set wopopup.bypass false` 来设置。
---
## 做你自己的第一个弹窗
弹窗不在 `config.yml` 里配,是**一个文件一个弹窗**,弹窗配置文件都放在 `plugins/WoPopUp/popups/` 下面。
**文件名就是弹窗的 ID。** 建一个 `announce.yml`,这个弹窗的 ID 就叫 `announce`。
改完执行 `/wopup reload` 立刻生效。
### 一个能直接用的最小配置
```yaml
# 是否启用
enabled: true
# 标题(支持 & 颜色码)
title: '&8&l✦ &b&l服务器公告 &8&l✦'
# 界面格数:只能填 9 / 18 / 27 / 36 / 45 / 54
# 27 = 3 排,54 = 6 排
size: 27
# 空槽填充,用来做边框,不填也行
filler:
enabled: true
material: GRAY_STAINED_GLASS_PANE
name: ' '
# 按钮
buttons:
know:
slot: 27 # 格位,从 1 开始数
material: EMERALD
name: '&a&l知道了'
lore:
- '&7关闭本窗口'
close: true # 点击后关闭
```
### 玩家怎么关掉弹窗
靠按钮上的两个开关控制:
| 写法 | 效果 |
| --------------- | ---------------------------- |
| `close: true` | 点了就关,下次进服还会弹 |
| `dismiss: true` | 点了就关,**并且以后不再弹这个弹窗,不影响其他弹窗** |
两个都不写,这个按钮就是"只干活、不关窗"——比如只发一条消息提示他。
> 注意至少配一个 `close: true` 的按钮(比如「知道了」),否则玩家会被永久困在界面上。这个插件会帮你自动兜底补一个,但还是建议自己配置。
### 按钮点击后能干什么
在按钮的 `commands` 里写,一行一条。**用前缀决定谁来执行**:
| 前缀 | 干什么 | 例子 |
| ---------- | -------------------------------- | --------------------------------- |
| `tell:` | 只给点击的玩家发一条消息 | `tell:&a欢迎回来!` |
| `msg:` | 同上 | `msg:&7请前往官网查看活动` |
| `bc:` | 全服广播一条消息*(暂未支持bc跨服,后续更新)* | `bc:&e[公告] 双倍经验开启!` |
| `player:` | 让玩家自己执行一条指令(受他自己的权限限制) | `player:spawn` |
| `op:` | 临时给玩家管理员权限后执行 | `op:fly` |
| `console:` | 由控制台执行 | `console:give %player% diamond 3` |
| 不写前缀 | 等同于 `console:` | `give %player% diamond 3` |
命令里想带上玩家名字,写 `%player%` 。
---
## 管理命令
主命令 `/wopopup`,也可以简写成 `/wpu` 或 `/popup`。
| 命令 | 作用 |
| -------------------------- | -------------------------- |
| `/wopup reload` | 重载配置和所有弹窗,不用重启 |
| `/wopup list` | 列出全部弹窗,以及它们的启用状态、优先级、按钮数 |
| `/wopup open <玩家> <弹窗ID>` | 立刻给指定玩家弹出指定弹窗 |
| `/wopup reset <玩家> [弹窗ID]` | 清掉这名玩家的「不再弹出」记录(不带 ID 就全清) |
| `/wopup check <玩家>` | **诊断**:这名玩家进服会弹哪个、其他为什么被跳过 |
---
## 权限
| 权限 | 默认给谁 | 作用 |
| ---------------- | ---- | ----------------- |
| `wopopup.admin` | OP | 使用上面所有管理命令 |
| `wopopup.bypass` | OP | 进服时不弹窗(给管理号、测试号用) |
---
## 注意事项
**1. 用了 Velocity / BungeeCord 代理?建议把延迟调大。**
打开 `config.yml`,把 `join-delay-ticks` 从默认的 `20` 改成 **40 ~ 60**。
发现无弹窗的时候可以修改试试,因为插件在发现没弹出来时会自己重试。
**2. 可以设置等资源包加载完再弹。**
`config.yml` 里的 `wait-resource-pack` 打开后,弹窗会等你服务器的材质包加载完成再出现。
但如果你的服务器**不下发资源包**,请保持 `false` —— 否则每个玩家都要等一次超时20秒后才能看见。另外,如果你是用代理下发资源包的,子服的插件收不到加载状态,这个开关起不到作用,也保持 `false`。
**3. 如果你使用1.8版本,材质名按照现代写法填。**
比如 `GRAY_STAINED_GLASS_PANE`,在 1.8 ~ 1.12 的服务器上会自动变成对应的老版玻璃板。
**4. 玩家说"我不想再看了"。**
他点「此条信息不再弹出」后,插件就记住了。如果你要重新给他弹,执行:
```
/wopup reset <玩家名>
```
**5. 弹窗死活不弹?**
先跑 `/wopup check <玩家名>`,它会直接检查,并告诉你卡在哪一环。还可以把 `config.yml` 里的 `debug` 改成 `true`,重启后进服复现一次,日志里会有完整过程。
---
## 兼容性
| 项目 | 支持情况 |
| ------------------------------ | ------------------------- |
| 服务端 | Spigot、Paper、Purpur、Folia |
| 服务端版本 | 1.8.8 ~ 26.x |
| 前置插件 | 无 |
| Folia(多线程服务端) | 支持 |
| 服务端接入代理(Velocity / BungeeCord) | 支持(但暂不支持插件装代理端) |
| 热重载 | `/wopup reload` / Plugman |
---
## 常见问题
**Q:能和别的欢迎插件一起用吗?**
理论上能,但不保证,可以尝试。
**Q:一次进服会弹几个?**
只弹一个。多个弹窗同时可用时,按 `config.yml` 里的 `selection` 规则挑,`priority` 取优先级最高的,`random` 随机挑一个。
**Q:玩家在大厅和主服之间来回切换,会重复弹吗?**
会。这种多子服架构下,每次进子服都算一次进服。想避免重复,可以只把弹窗放在主营服上,或者给弹窗打开 `first-join-only`,只对首次进服的人生效。
---
## 反馈与建议
***block409@foxmail.com***
[/MD]