服务器使用量
未统计
服务玩家数
未统计
下载量
16,346
插件详细介绍
WorldGuard Events 插件说明
本插件主要为服务器管理员提供支持,当其他插件依赖它时,只需将 JAR 文件放入服务器的 plugins 文件夹,重载服务器即可完成安装。它本身不提供独立功能,仅在作为其他插件的前置时发挥作用。
安装与要求
前置依赖
- 必须安装最新版本的 WorldEdit。
- 必须安装最新版本的 WorldGuard。
版本与兼容性
- 本插件已使用 EngineHub 上提供的开发版本进行测试。
- 不兼容说明:本插件目前不支持 FastAsyncWorldEdit,未来也不会支持。使用它可能导致未知问题,请自行承担风险。
开发者指南
事件列表
本插件提供以下事件,均在玩家移动进入新的区域集合时按顺序触发:
- RegionsChangedEvent
- RegionsEnteredEvent
- RegionsLeftEvent
- RegionEnteredEvent
- RegionLeftEvent
事件使用说明
- 事件名称已明确表达其用途,开发者可根据需要选择使用。
- 返回单个
ProtectedRegion的事件与返回ProtectedRegion集合的事件会同时触发,便于处理重叠或相邻的多个区域。 - 重要:取消任何一个事件都将阻止玩家的此次移动。
API 功能
自插件版本 1.15.2 起,提供了一个简易 API,用于从 WorldGuard 获取玩家基本信息(均通过玩家 UUID 查询):
getRegionsgetRegionNamesisPlayerInRegionisPlayerInAnyRegionisPlayerInAllRegions
详细用法请参阅 官方文档。
注意事项与支持
用户反馈
- 如果您喜欢这个插件,请为其评分,以帮助更多人发现它。
- 请勿仅因插件“看似未更新”而给予差评。如果没有需要修复的问题,插件将保持稳定,无需频繁更新。
问题与建议
- 请使用 GitHub 项目页面 报告错误或提交功能请求。
WorldGuardEvents 是一个用于监听玩家进出 WorldGuard 区域的 Bukkit 插件,它提供了简单易用的 API,让开发者可以轻松地为区域进出事件添加自定义逻辑。
Maven 依赖
此插件位于 Maven Central 仓库,您只需将其添加为依赖即可。
<dependency>
<groupId>net.raidstone</groupId>
<artifactId>WorldGuardEvents</artifactId>
<version>1.18.1</version>
<scope>provided</scope>
</dependency>使用示例
以下是一个完整的插件示例,展示了如何监听区域事件并进行处理。
import net.raidstone.wgevents.WorldGuardEvents;
import net.raidstone.wgevents.events.RegionEnteredEvent;
import net.raidstone.wgevents.events.RegionsLeftEvent;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.plugin.java.JavaPlugin;
import java.util.Set;
public class TestPlugin extends JavaPlugin implements Listener {
@Override
public void onEnable() {
Bukkit.getPluginManager().registerEvents(this, this);
// 插件启用时,向所有位于“监狱”区域内的在线玩家发送消息
for (Player p : Bukkit.getOnlinePlayers()) {
if (WorldGuardEvents.isPlayerInAnyRegion(p.getUniqueId(), "jail", "cell")) {
p.sendMessage("你正在坐牢!是不是干了什么坏事?");
}
}
}
@EventHandler
public void onRegionEntered(RegionEnteredEvent event) {
// 当玩家进入名为“jail”的区域时发送消息
Player player = Bukkit.getPlayer(event.getUUID());
if (player == null) return;
String regionName = event.getRegionName();
if (regionName.equalsIgnoreCase("jail")) {
player.sendMessage("你现在入狱了!");
}
}
@EventHandler
public void onRegionsLeft(RegionsLeftEvent event) {
// 阻止玩家离开名为“jail”或“cell”的区域
Player player = Bukkit.getPlayer(event.getUUID());
if (player == null) return;
Set<String> regionsNames = event.getRegionsNames();
if (regionsNames.contains("jail") || regionsNames.contains("cell")) {
player.sendMessage("你正在坐牢,休想逃跑!");
event.setCancelled(true); // 取消离开事件
}
}
}重要说明
- 区域名称的检查不区分大小写,这与 WorldGuard 的行为一致。
- 所有区域检查都基于玩家当前所在的世界。
isPlayerInAnyRegion方法可以检查玩家是否处于参数列表中指定的任意一个区域内。
测试支持版本
版本分布
基本信息
插件名称
WorldGuard Events
作者
Weby
平台
Bukkit / Spigot
支持版本
1.15 - 1.18
点赞数
4
最近版本
暂无数据
-