Skip to content

Commit

Permalink
Cancel directors if not able to build (#17)
Browse files Browse the repository at this point in the history
* Cancel directors if not able to build

* Update build.gradle.kts

* Register event
  • Loading branch information
TylerS1066 committed Jul 27, 2024
1 parent d765dd8 commit 4f873a4
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 2 deletions.
4 changes: 2 additions & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ dependencies {
api("org.jetbrains:annotations-java5:24.1.0")
compileOnly("io.papermc.paper:paper-api:1.18.2-R0.1-SNAPSHOT")
compileOnly("net.countercraft:movecraft:+")
compileOnly("net.countercraft.movecraft.combat:movecraft-combat:+")
compileOnly("net.countercraft.movecraft.repair:movecraft-repair:1.0.0_beta-4_gradle-2")
compileOnly("net.countercraft.movecraft.combat:movecraft-combat:2.0.0_beta-5_dev-1")
compileOnly("net.countercraft.movecraft.repair:movecraft-repair:+")
api("com.sk89q.worldedit:worldedit-core:7.2.9")
api("com.sk89q.worldguard:worldguard-bukkit:7.0.7")
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ public void onEnable() {
}

getServer().getPluginManager().registerEvents(new CraftDetectListener(), this);
getServer().getPluginManager().registerEvents(new CraftDirectListener(), this);
getServer().getPluginManager().registerEvents(new CraftRotateListener(), this);
getServer().getPluginManager().registerEvents(new CraftSinkListener(), this);
getServer().getPluginManager().registerEvents(new CraftTranslateListener(), this);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package net.countercraft.movecraft.worldguard.listener;

import com.sk89q.worldguard.protection.flags.Flags;
import net.countercraft.movecraft.combat.features.directors.Directors;
import net.countercraft.movecraft.combat.features.directors.events.CraftDirectEvent;
import net.countercraft.movecraft.exception.EmptyHitBoxException;
import net.countercraft.movecraft.worldguard.MovecraftWorldGuard;
import net.countercraft.movecraft.worldguard.localisation.I18nSupport;
import net.countercraft.movecraft.worldguard.utils.WorldGuardUtils;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.jetbrains.annotations.NotNull;

public class CraftDirectListener implements Listener {
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOW)
public void onCraftDirect(@NotNull CraftDirectEvent e) {
Player p = e.getPlayer();
WorldGuardUtils wgUtils = MovecraftWorldGuard.getInstance().getWGUtils();
try {
// Check build flag
switch (wgUtils.getState(p, p.getLocation(), Flags.BUILD)) {
case ALLOW:
break; // Player is allowed to build
case NONE:
case DENY:
// Player is not allowed to build
e.setCancelled(true);
Directors.clearDirector(p);
p.sendMessage(I18nSupport.getInternationalisedString("Directing - WorldGuard - Not Permitted To Build"));
return;
default:
break;
}
} catch (EmptyHitBoxException ignored) {
}
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
Detection\ -\ WorldGuard\ -\ Not\ Permitted\ To\ Build=Detection Failed - Player is not permitted to build in this WorldGuard region
Directing\ -\ WorldGuard\ -\ Not\ Permitted\ To\ Build=Directing Failed - Player is not permitted to build in this WorldGuard region
Rotation\ -\ WorldGuard\ -\ Not\ Permitted\ To\ Build=Rotation Failed - Player is not permitted to build in this WorldGuard region
Repair\ -\ WorldGuard\ -\ Not\ Permitted\ To\ Build=Repair Failed - Player is not permitted to build in this WorldGuard region
Player\ -\ Craft\ should\ sink\ but\ PVP\ is\ not\ allowed\ in\ this\ WorldGuard\ region=Craft should sink but PVP is not allowed in this WorldGuard region
Expand Down

0 comments on commit 4f873a4

Please sign in to comment.