steal event and then capture listen works :)
Some checks are pending
Build plugin / build (push) Waiting to run
Some checks are pending
Build plugin / build (push) Waiting to run
This commit is contained in:
parent
c470cfda3b
commit
e463925efd
|
@ -185,7 +185,7 @@ public class CTB implements Minigame {
|
||||||
case Jailed:
|
case Jailed:
|
||||||
player.sendActionBar(ChatUtils.translate(state.getFancyText().replace("%territory%", territory.getFancyText())));
|
player.sendActionBar(ChatUtils.translate(state.getFancyText().replace("%territory%", territory.getFancyText())));
|
||||||
break;
|
break;
|
||||||
case Tagged, Invulnerable:
|
case Tagged, Invulnerable, Stealing:
|
||||||
player.sendActionBar(ChatUtils.translate(state.getFancyText()));
|
player.sendActionBar(ChatUtils.translate(state.getFancyText()));
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
@ -341,6 +341,30 @@ public class CTB implements Minigame {
|
||||||
taggedPlayerHashMap.remove(tagger);
|
taggedPlayerHashMap.remove(tagger);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
void onPlayerMoveWithBrick(PlayerMoveEvent event) {
|
||||||
|
if (!(event.getFrom().getX() != event.getTo().getX() || event.getFrom().getZ() != event.getTo().getZ())) return;
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
if (!players.contains(player)) return;
|
||||||
|
if (this.state != GameState.STARTED) return;
|
||||||
|
if (playerStateMap.get(player) != CtbData.PlayerState.Stealing) return;
|
||||||
|
CtbData.Territory territory = getTerritory(player);
|
||||||
|
// CustomPlayer cPlayer = new CustomPlayer(player);
|
||||||
|
if (territory.equals(CtbData.Territory.Neutral)) {
|
||||||
|
sendMessageToAllPlayers(messages.getString("system.player.brick.steal.announce").replace("%player%", player.getName()));
|
||||||
|
playerStateMap.replace(player, CtbData.PlayerState.Stealing, CtbData.PlayerState.Free);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@EventHandler
|
||||||
|
void onPlayerStealBrick(PlayerStealBrickEvent event) {
|
||||||
|
Player player = event.getThief();
|
||||||
|
if (!players.contains(player)) return;
|
||||||
|
if (this.state != GameState.STARTED) return;
|
||||||
|
if (playerStateMap.get(player) != CtbData.PlayerState.Stealing) return;
|
||||||
|
player.sendMessage(event.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
void onPlayerWalkWhileInvuln(PlayerMoveEvent event) {
|
void onPlayerWalkWhileInvuln(PlayerMoveEvent event) {
|
||||||
if (!(event.getFrom().getX() != event.getTo().getX() || event.getFrom().getZ() != event.getTo().getZ())) return;
|
if (!(event.getFrom().getX() != event.getTo().getX() || event.getFrom().getZ() != event.getTo().getZ())) return;
|
||||||
|
@ -477,6 +501,8 @@ public class CTB implements Minigame {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
void handleEntityDamage(EntityDamageByEntityEvent event) {
|
void handleEntityDamage(EntityDamageByEntityEvent event) {
|
||||||
if (this.state != GameState.STARTED) return;
|
if (this.state != GameState.STARTED) return;
|
||||||
|
@ -485,21 +511,21 @@ public class CTB implements Minigame {
|
||||||
|
|
||||||
if (!(eventEntity instanceof Player interacted) || !(eventDamager instanceof Player interacter)) return;
|
if (!(eventEntity instanceof Player interacted) || !(eventDamager instanceof Player interacter)) return;
|
||||||
if (!players.contains(interacted) || !players.contains(interacter)) return;
|
if (!players.contains(interacted) || !players.contains(interacter)) return;
|
||||||
if (getTerritory(interacted) != getTerritory(interacter)) return;
|
// if (getTerritory(interacted) != getTerritory(interacter)) return;
|
||||||
|
|
||||||
PlayerGameInteractionEvent interactionEvent = new PlayerGameInteractionEvent(interacted, interacter);
|
PlayerGameInteractionEvent interactionEvent = new PlayerGameInteractionEvent(interacted, interacter);
|
||||||
Bukkit.getServer().getPluginManager().callEvent(interactionEvent);
|
Bukkit.getServer().getPluginManager().callEvent(interactionEvent);
|
||||||
|
|
||||||
if (interactionEvent.isCancelled()) {
|
event.setCancelled(true);
|
||||||
event.setCancelled(true);
|
// if (interactionEvent.isCancelled()) {
|
||||||
}
|
// event.setCancelled(true);
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
void onPlayerFree(EntityDamageByEntityEvent event) {
|
void onPlayerFree(PlayerGameInteractionEvent event) {
|
||||||
handleEntityDamage(event);
|
Player interacted = event.getInteracted();
|
||||||
Player interacted = (Player) event.getEntity();
|
Player interacter = event.getInteracter();
|
||||||
Player interacter = (Player) event.getDamager();
|
|
||||||
|
|
||||||
if (this.state != GameState.STARTED) return;
|
if (this.state != GameState.STARTED) return;
|
||||||
if (!players.contains(interacted) || !players.contains(interacter)) return;
|
if (!players.contains(interacted) || !players.contains(interacter)) return;
|
||||||
|
@ -518,32 +544,9 @@ public class CTB implements Minigame {
|
||||||
}
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
void onPlayerHit(EntityDamageByEntityEvent event) {
|
void onPlayerTag(PlayerGameInteractionEvent event) {
|
||||||
handleEntityDamage(event);
|
Player interacted = event.getInteracted();
|
||||||
Player interacted = (Player) event.getEntity();
|
Player interacter = event.getInteracter();
|
||||||
Player interacter = (Player) event.getDamager();
|
|
||||||
|
|
||||||
if (this.state != GameState.STARTED) return;
|
|
||||||
if (!players.contains(interacted) || !players.contains(interacter)) return;
|
|
||||||
if (getTerritory(interacted) != getTerritory(interacter)) return;
|
|
||||||
ScoreboardTeam interactedTeam = getTeam(interacted);
|
|
||||||
ScoreboardTeam interacterTeam = getTeam(interacter);
|
|
||||||
if (interactedTeam != interacterTeam) return;
|
|
||||||
if (playerStateMap.get(interacted) != CtbData.PlayerState.Jailed) return;
|
|
||||||
if (playerStateMap.get(interacter) != CtbData.PlayerState.Free) return;
|
|
||||||
|
|
||||||
playerStateMap.replace(interacted, CtbData.PlayerState.Jailed, CtbData.PlayerState.Invulnerable);
|
|
||||||
playerStateMap.replace(interacter, CtbData.PlayerState.Free, CtbData.PlayerState.Invulnerable);
|
|
||||||
PlayerFreedFromJailEvent freedFromJailEvent = new PlayerFreedFromJailEvent(interacted, interacter);
|
|
||||||
Bukkit.getServer().getPluginManager().callEvent(freedFromJailEvent);
|
|
||||||
event.setCancelled(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
@EventHandler
|
|
||||||
void onEntityDamage(EntityDamageByEntityEvent event) {
|
|
||||||
handleEntityDamage(event);
|
|
||||||
Player interacted = (Player) event.getEntity();
|
|
||||||
Player interacter = (Player) event.getDamager();
|
|
||||||
|
|
||||||
if (this.state != GameState.STARTED) return;
|
if (this.state != GameState.STARTED) return;
|
||||||
if (!players.contains(interacted) || !players.contains(interacter)) return;
|
if (!players.contains(interacted) || !players.contains(interacter)) return;
|
||||||
|
@ -572,7 +575,7 @@ public class CTB implements Minigame {
|
||||||
if (this.state != GameState.STARTED) return;
|
if (this.state != GameState.STARTED) return;
|
||||||
Entity rightClicked = event.getRightClicked();
|
Entity rightClicked = event.getRightClicked();
|
||||||
Player brickTaker = event.getPlayer();
|
Player brickTaker = event.getPlayer();
|
||||||
// if (!(rightClicked instanceof ArmorStand brickEntity)) return;
|
if (!(rightClicked instanceof ArmorStand)) return;
|
||||||
if (!players.contains(brickTaker)) return;
|
if (!players.contains(brickTaker)) return;
|
||||||
SGM.getInstance().getCLogger().log(rightClicked);
|
SGM.getInstance().getCLogger().log(rightClicked);
|
||||||
SGM.getInstance().getCLogger().log(brickTaker);
|
SGM.getInstance().getCLogger().log(brickTaker);
|
||||||
|
|
|
@ -7,7 +7,7 @@ public class CtbData {
|
||||||
|
|
||||||
public enum PlayerState {
|
public enum PlayerState {
|
||||||
Free(""),
|
Free(""),
|
||||||
Stealing("<yellow><bold>⚠️ʙᴇ ᴄᴀʀᴇꜰᴜʟ! ʏᴏᴜ ʜᴀᴠᴇ ᴀ ʙʀɪᴄᴋ ⚠️"),
|
Stealing("<yellow>⚠<bold>ʙᴇ ᴄᴀʀᴇꜰᴜʟ! ʏᴏᴜ ʜᴀᴠᴇ ᴀ ʙʀɪᴄᴋ</bold>⚠"),
|
||||||
Invulnerable("<gray><bold>ɢᴏ ʙᴀᴄᴋ ᴛᴏ ɴᴇᴜᴛʀᴀʟ!"),
|
Invulnerable("<gray><bold>ɢᴏ ʙᴀᴄᴋ ᴛᴏ ɴᴇᴜᴛʀᴀʟ!"),
|
||||||
Tagging("<gray><bold>ʏᴏᴜ ᴀʀᴇ ᴛᴀɢɢɪɴɢ: %player%"),
|
Tagging("<gray><bold>ʏᴏᴜ ᴀʀᴇ ᴛᴀɢɢɪɴɢ: %player%"),
|
||||||
Tagged("<red><bold>ʏᴏᴜ ᴀʀᴇ ᴄᴜʀʀᴇɴᴛʟʏ ᴛᴀɢɢᴇᴅ!"),
|
Tagged("<red><bold>ʏᴏᴜ ᴀʀᴇ ᴄᴜʀʀᴇɴᴛʟʏ ᴛᴀɢɢᴇᴅ!"),
|
||||||
|
|
|
@ -8,19 +8,18 @@ import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.Cancellable;
|
import org.bukkit.event.Cancellable;
|
||||||
import org.bukkit.event.Event;
|
import org.bukkit.event.Event;
|
||||||
import org.bukkit.event.HandlerList;
|
import org.bukkit.event.HandlerList;
|
||||||
import org.jetbrains.annotations.NotNull;
|
|
||||||
import xyz.twovb.sgm.games.impl.capturethebrick.CTB;
|
import xyz.twovb.sgm.games.impl.capturethebrick.CTB;
|
||||||
import xyz.twovb.toolbox.utils.ChatUtils;
|
import xyz.twovb.toolbox.utils.ChatUtils;
|
||||||
|
|
||||||
public class PlayerStealBrickEvent extends Event implements Cancellable {
|
public class PlayerStealBrickEvent extends Event implements Cancellable {
|
||||||
private static final HandlerList HANDLER_LIST = new HandlerList();
|
private static final HandlerList HANDLER_LIST = new HandlerList();
|
||||||
private final Player jailed;
|
private final Player thief;
|
||||||
private boolean isCancelled;
|
private boolean isCancelled;
|
||||||
|
|
||||||
private Component message;
|
private Component message;
|
||||||
|
|
||||||
public PlayerStealBrickEvent(Player jailed) {
|
public PlayerStealBrickEvent(Player thief) {
|
||||||
this.jailed = jailed;
|
this.thief = thief;
|
||||||
this.isCancelled = false;
|
this.isCancelled = false;
|
||||||
this.message = ChatUtils.translate(CTB.getMessages().getString("system.player.brick.steal.notify"));
|
this.message = ChatUtils.translate(CTB.getMessages().getString("system.player.brick.steal.notify"));
|
||||||
}
|
}
|
||||||
|
@ -29,8 +28,8 @@ public class PlayerStealBrickEvent extends Event implements Cancellable {
|
||||||
return HANDLER_LIST;
|
return HANDLER_LIST;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Player getJailed() {
|
public Player getThief() {
|
||||||
return this.jailed;
|
return this.thief;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Component getMessage() {
|
public Component getMessage() {
|
||||||
|
|
|
@ -20,4 +20,5 @@ system:
|
||||||
full: "&7You have returned to Neutral. You can now get back to the game!"
|
full: "&7You have returned to Neutral. You can now get back to the game!"
|
||||||
brick:
|
brick:
|
||||||
steal:
|
steal:
|
||||||
notify: "&7You have stolen a brick. Make it to Neutral without being caught to Capture The Brick™!"
|
notify: "&7You have stolen a brick. Make it to Neutral without being caught to Capture The Brick™!"
|
||||||
|
announce: "&7%player% has captured a brick! %score%"
|
Loading…
Reference in New Issue
Block a user