9
0
mirror of https://gitlab.com/SamB440/rpgregions-2.git synced 2025-12-28 03:09:14 +00:00

Add events and listeners

This commit is contained in:
SamB440
2019-12-19 19:11:17 +00:00
parent 99ef876cd3
commit 9a3eae1574
5 changed files with 124 additions and 5 deletions

View File

@@ -6,7 +6,7 @@ import net.islandearth.languagy.language.LanguagyPluginHook;
import net.islandearth.languagy.language.Translator;
import net.islandearth.rpgregions.api.RPGRegionsAPI;
import net.islandearth.rpgregions.listener.ConnectionListener;
import net.islandearth.rpgregions.listener.RegionListener;
import net.islandearth.rpgregions.listener.MoveListener;
import net.islandearth.rpgregions.managers.RPGRegionsManagers;
import org.bukkit.Bukkit;
import org.bukkit.Material;
@@ -97,7 +97,7 @@ public final class RPGRegions extends JavaPlugin implements RPGRegionsAPI, Langu
private void registerListeners() {
PluginManager pm = Bukkit.getPluginManager();
pm.registerEvents(new ConnectionListener(this), this);
pm.registerEvents(new RegionListener(), this);
pm.registerEvents(new MoveListener(), this);
}
public static RPGRegionsAPI getAPI() {

View File

@@ -0,0 +1,40 @@
package net.islandearth.rpgregions.api.event;
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
import org.bukkit.entity.Player;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.jetbrains.annotations.NotNull;
import java.util.Set;
public class RegionDiscoverEvent extends Event {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final Player player;
private final Set<ProtectedRegion> regions;
public RegionDiscoverEvent(Player player, Set<ProtectedRegion> regions) {
this.player = player;
this.regions = regions;
}
public Player getPlayer() {
return player;
}
public Set<ProtectedRegion> getRegion() {
return regions;
}
@NotNull
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
}
}

View File

@@ -0,0 +1,39 @@
package net.islandearth.rpgregions.api.event;
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
import org.bukkit.entity.Player;
import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.jetbrains.annotations.NotNull;
import java.util.Set;
public class RegionEnterEvent extends Event {
private static final HandlerList HANDLER_LIST = new HandlerList();
private final Player player;
private final Set<ProtectedRegion> regions;
public RegionEnterEvent(Player player, Set<ProtectedRegion> regions) {
this.player = player;
this.regions = regions;
}
public Player getPlayer() {
return player;
}
public Set<ProtectedRegion> getRegions() {
return regions;
}
@NotNull
@Override
public HandlerList getHandlers() {
return HANDLER_LIST;
}
public static HandlerList getHandlerList() {
return HANDLER_LIST;
}
}

View File

@@ -0,0 +1,34 @@
package net.islandearth.rpgregions.listener;
import com.sk89q.worldedit.bukkit.BukkitAdapter;
import com.sk89q.worldedit.math.BlockVector3;
import com.sk89q.worldguard.WorldGuard;
import com.sk89q.worldguard.protection.regions.ProtectedRegion;
import net.islandearth.rpgregions.api.event.RegionEnterEvent;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
import java.util.Set;
public class MoveListener implements Listener {
@EventHandler
public void onMove(PlayerMoveEvent pme) {
Player player = pme.getPlayer();
int x = pme.getTo().getBlockX();
int y = pme.getTo().getBlockY();
int z = pme.getTo().getBlockZ();
int oldX = pme.getFrom().getBlockX();
int oldY = pme.getFrom().getBlockY();
int oldZ = pme.getFrom().getBlockZ();
Set<ProtectedRegion> prevRegions = WorldGuard.getInstance().getPlatform().getRegionContainer().get(BukkitAdapter.adapt(player.getWorld())).getApplicableRegions(BlockVector3.at(oldX, oldY, oldZ)).getRegions();
Set<ProtectedRegion> regions = WorldGuard.getInstance().getPlatform().getRegionContainer().get(BukkitAdapter.adapt(player.getWorld())).getApplicableRegions(BlockVector3.at(x, y, z)).getRegions();
if (prevRegions.equals(regions)) return;
Bukkit.getPluginManager().callEvent(new RegionEnterEvent(player, regions));
}
}

View File

@@ -1,13 +1,19 @@
package net.islandearth.rpgregions.listener;
import net.islandearth.rpgregions.api.event.RegionDiscoverEvent;
import net.islandearth.rpgregions.api.event.RegionEnterEvent;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.PlayerMoveEvent;
public class RegionListener implements Listener {
@EventHandler
public void onMove(PlayerMoveEvent pme) {
public void onEnter(RegionEnterEvent ree) {
}
@EventHandler
public void onDiscover(RegionDiscoverEvent rde) {
}
}