本插件主要为服务器管理员提供支持,当其他插件依赖它时,只需将 JAR 文件放入服务器的 plugins 文件夹,重载服务器即可完成安装。它本身不提供独立功能,仅在作为其他插件的前置时发挥作用。
本插件提供以下事件,均在玩家移动进入新的区域集合时按顺序触发:
ProtectedRegion 的事件与返回 ProtectedRegion 集合的事件会同时触发,便于处理重叠或相邻的多个区域。自插件版本 1.15.2 起,提供了一个简易 API,用于从 WorldGuard 获取玩家基本信息(均通过玩家 UUID 查询):
getRegionsgetRegionNamesisPlayerInRegionisPlayerInAnyRegionisPlayerInAllRegions详细用法请参阅 官方文档。
WorldGuardEvents 是一个用于监听玩家进出 WorldGuard 区域的 Bukkit 插件,它提供了简单易用的 API,让开发者可以轻松地为区域进出事件添加自定义逻辑。
此插件位于 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); // 取消离开事件
}
}
}isPlayerInAnyRegion 方法可以检查玩家是否处于参数列表中指定的任意一个区域内。友情链接: 网易我的世界 | 泰拉瑞亚 | ocent云计算 | 米饭Minecraft插件文档 | 友链合作
历史访问人次:3,030,814 | 今日访问人次:14,942 | 昨日访问人次:11,147
独立 IP:5,154 | 最近24小时独立访客:7,271
Copyright © 2019-2026 我的世界服务器列表站. All rights reserved.
❤ Powered by GermMC 京ICP备17023959号-6