BEDFIGHTTTTTTTT
This commit is contained in:
parent
820d418eac
commit
a8fdd72217
@ -29,7 +29,7 @@ public class Arena {
|
|||||||
|
|
||||||
private AsyncLocation min;
|
private AsyncLocation min;
|
||||||
private AsyncLocation max;
|
private AsyncLocation max;
|
||||||
|
private int deadZone;
|
||||||
private boolean enabled = false;
|
private boolean enabled = false;
|
||||||
|
|
||||||
private Flag flag = Flag.DEFAULT;
|
private Flag flag = Flag.DEFAULT;
|
||||||
|
@ -31,6 +31,8 @@ public class Kit {
|
|||||||
|
|
||||||
private Flag flag = Flag.DEFAULT;
|
private Flag flag = Flag.DEFAULT;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void applyToPlayer(Player player) {
|
public void applyToPlayer(Player player) {
|
||||||
player.getInventory().setContents(this.contents);
|
player.getInventory().setContents(this.contents);
|
||||||
player.getInventory().setArmorContents(this.armor);
|
player.getInventory().setArmorContents(this.armor);
|
||||||
|
@ -151,6 +151,13 @@ public class MatchListener implements Listener {
|
|||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onEntityDamage(EntityDamageByEntityEvent event) {
|
public void onEntityDamage(EntityDamageByEntityEvent event) {
|
||||||
|
Player killer = (Player) event.getDamager();
|
||||||
|
Match match = this.plugin.getMatchManager().getMatch(killer.getUniqueId());
|
||||||
|
|
||||||
|
if (match.getKit().getFlag().equals(Flag.BEDWARS)) {
|
||||||
|
if (killer == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (event.getEntity() instanceof Player && event.getDamager() instanceof Player) {
|
if (event.getEntity() instanceof Player && event.getDamager() instanceof Player) {
|
||||||
Player defender = (Player) event.getEntity();
|
Player defender = (Player) event.getEntity();
|
||||||
@ -174,7 +181,7 @@ public class MatchListener implements Listener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@EventHandler
|
@EventHandler
|
||||||
public void onMatchStart(MatchStartEvent event) {
|
public void onMatchStart(MatchStartEvent event) {
|
||||||
|
@ -1,20 +1,26 @@
|
|||||||
package land.battle.practice.listeners;
|
package land.battle.practice.listeners;
|
||||||
|
|
||||||
import land.battle.practice.Practice;
|
import land.battle.practice.Practice;
|
||||||
|
import land.battle.practice.event.match.MatchEndEvent;
|
||||||
import land.battle.practice.flags.Flag;
|
import land.battle.practice.flags.Flag;
|
||||||
import land.battle.practice.match.Match;
|
import land.battle.practice.match.Match;
|
||||||
import land.battle.practice.match.MatchState;
|
import land.battle.practice.match.MatchState;
|
||||||
|
import land.battle.practice.match.custom.CustomMatchRespawnRunnable;
|
||||||
|
import land.battle.practice.match.team.impl.MatchTeam;
|
||||||
import land.battle.practice.player.PlayerData;
|
import land.battle.practice.player.PlayerData;
|
||||||
import land.battle.practice.player.PlayerState;
|
import land.battle.practice.player.PlayerState;
|
||||||
import land.battle.practice.util.BlockUtil;
|
import land.battle.practice.util.BlockUtil;
|
||||||
import io.papermc.lib.PaperLib;
|
import io.papermc.lib.PaperLib;
|
||||||
import land.battle.practice.util.cuboid.Cuboid;
|
import land.battle.practice.util.cuboid.Cuboid;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import org.bukkit.event.player.PlayerMoveEvent;
|
import org.bukkit.event.player.PlayerMoveEvent;
|
||||||
|
import org.bukkit.potion.PotionEffectType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author BattleLand Team
|
* @author BattleLand Team
|
||||||
@ -55,6 +61,38 @@ public class MovementListener implements Listener {
|
|||||||
this.plugin.getMatchManager().removeFighter(startingOpponent, playerData, false);
|
this.plugin.getMatchManager().removeFighter(startingOpponent, playerData, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (match.getKit().getFlag().equals(Flag.BEDWARS)) {
|
||||||
|
MatchTeam playerTeam = match.getTeams().get(playerData.getTeamID());
|
||||||
|
if (player.getLocation().getY() <= 50
|
||||||
|
&& !player.hasPotionEffect(PotionEffectType.WEAKNESS)
|
||||||
|
&& match.getMatchState() != MatchState.ENDING) {
|
||||||
|
if (playerTeam.isHasBed()) {
|
||||||
|
match.broadcast(
|
||||||
|
(playerTeam.getTeamID() == 1 ? "&9" : "&c") + player.getName() + " &7has died.", Sound.ORB_PICKUP);
|
||||||
|
new CustomMatchRespawnRunnable(player, playerData, match, playerTeam, 4,
|
||||||
|
4).runTaskTimer(plugin, 0L, 20L);
|
||||||
|
} else if (match.isPartyMatch()) {
|
||||||
|
if (!playerTeam.isHasBed()) {
|
||||||
|
this.plugin.getMatchManager().removeFighter(player, playerData, false);
|
||||||
|
}
|
||||||
|
} else if (match.getMatchState() == MatchState.ENDING) {
|
||||||
|
this.plugin.getPlayerManager().sendToSpawnAndReset(player);
|
||||||
|
} else {
|
||||||
|
match.setCanContinue(false);
|
||||||
|
if (!match.isCanContinue() && !match.getMatchState().equals(MatchState.ENDING)) {
|
||||||
|
MatchTeam opposingTeam = match.isFFA() ? match.getTeams().get(0)
|
||||||
|
: ((playerData.getTeamID() == 0) ? match.getTeams().get(1)
|
||||||
|
: match.getTeams().get(0));
|
||||||
|
Bukkit.getPluginManager()
|
||||||
|
.callEvent(new MatchEndEvent(match, opposingTeam, playerTeam));
|
||||||
|
player.teleport(playerTeam.getTeamID() == 1 ? match.getStandaloneArena().getPositionOne()
|
||||||
|
.toBukkitLocation() : match.getStandaloneArena().getPositionTwo().toBukkitLocation());
|
||||||
|
match.broadcast("", Sound.FIREWORK_LAUNCH);
|
||||||
|
match.broadcast("", Sound.FIREWORK_TWINKLE2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (match.getKit().getFlag().equals(Flag.SPLEEF) || match.getKit().getFlag().equals(Flag.SUMO)) {
|
if (match.getKit().getFlag().equals(Flag.SPLEEF) || match.getKit().getFlag().equals(Flag.SUMO)) {
|
||||||
final Location location = player.getLocation();
|
final Location location = player.getLocation();
|
||||||
|
@ -5,11 +5,13 @@ import land.battle.practice.arena.type.StandaloneArena;
|
|||||||
import land.battle.practice.flags.Flag;
|
import land.battle.practice.flags.Flag;
|
||||||
import land.battle.practice.match.Match;
|
import land.battle.practice.match.Match;
|
||||||
import land.battle.practice.match.MatchState;
|
import land.battle.practice.match.MatchState;
|
||||||
|
import land.battle.practice.match.team.impl.MatchTeam;
|
||||||
import land.battle.practice.player.PlayerData;
|
import land.battle.practice.player.PlayerData;
|
||||||
import land.battle.practice.player.PlayerState;
|
import land.battle.practice.player.PlayerState;
|
||||||
import land.battle.practice.runnable.BlockRemoveRunnable;
|
import land.battle.practice.runnable.BlockRemoveRunnable;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
|
import org.bukkit.Sound;
|
||||||
import org.bukkit.block.Block;
|
import org.bukkit.block.Block;
|
||||||
import org.bukkit.entity.Item;
|
import org.bukkit.entity.Item;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -40,6 +42,32 @@ public class WorldListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (event.getBlock().getType() == Material.BED_BLOCK) {
|
||||||
|
Match match = this.plugin.getMatchManager().getMatch(player.getUniqueId());
|
||||||
|
|
||||||
|
MatchTeam playerTeam = match.getTeams().get(playerData.getTeamID());
|
||||||
|
MatchTeam opposingTeam = match.isFFA() ? match.getTeams().get(0)
|
||||||
|
: ((playerData.getTeamID() == 0) ? match.getTeams().get(1)
|
||||||
|
: match.getTeams().get(0));
|
||||||
|
if ((playerTeam.getTeamID() == 1 ? match.getStandaloneArena().getPositionOne().toBukkitLocation()
|
||||||
|
: match.getStandaloneArena().getPositionTwo().toBukkitLocation()).distance(
|
||||||
|
event.getBlock().getLocation()) > 20.0) {
|
||||||
|
if (match.getKit().getFlag().equals(Flag.BEDWARS)) {
|
||||||
|
if (playerTeam.getPlayers().contains(player.getUniqueId()) && (!match.getMatchState().equals(MatchState.ENDING))
|
||||||
|
&& opposingTeam.isHasBed()) {
|
||||||
|
opposingTeam.destroyBed();
|
||||||
|
match.broadcast(playerTeam.getTeamID() == 1 ? "&9"
|
||||||
|
: "&c" + player.getName() + " &7destroyed the bed of " + (
|
||||||
|
playerTeam.getTeamID() == 1 ? "&cRed" : "&9Blue") + "&7!");
|
||||||
|
match.broadcast(
|
||||||
|
playerTeam.getTeamID() == 1 ? "&cRed's" : "&9Blue's" + " destroyed",
|
||||||
|
"&7By " + (playerTeam.getTeamID() == 1 ? "&9" : "&c") + player.getName());
|
||||||
|
match.broadcast("", Sound.ENDERDRAGON_GROWL);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (playerData.getPlayerState() == PlayerState.FIGHTING) {
|
if (playerData.getPlayerState() == PlayerState.FIGHTING) {
|
||||||
Match match = this.plugin.getMatchManager().getMatch(player.getUniqueId());
|
Match match = this.plugin.getMatchManager().getMatch(player.getUniqueId());
|
||||||
|
@ -40,6 +40,7 @@ public class Match {
|
|||||||
|
|
||||||
private final UUID matchId = UUID.randomUUID();
|
private final UUID matchId = UUID.randomUUID();
|
||||||
private final String shortMatchId = SaltUtil.getRandomSaltedString(7);
|
private final String shortMatchId = SaltUtil.getRandomSaltedString(7);
|
||||||
|
private boolean canContinue = true;
|
||||||
|
|
||||||
private final Set<Entity> entitiesToRemove = new HashSet<>();
|
private final Set<Entity> entitiesToRemove = new HashSet<>();
|
||||||
|
|
||||||
|
@ -2,6 +2,8 @@ package land.battle.practice.match.team.impl;
|
|||||||
|
|
||||||
import land.battle.practice.match.team.KillableTeam;
|
import land.battle.practice.match.team.KillableTeam;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@ -10,6 +12,14 @@ import java.util.UUID;
|
|||||||
public class MatchTeam extends KillableTeam {
|
public class MatchTeam extends KillableTeam {
|
||||||
|
|
||||||
private final int teamID;
|
private final int teamID;
|
||||||
|
private boolean hasBed = true;
|
||||||
|
@Setter
|
||||||
|
private int lives;
|
||||||
|
|
||||||
|
|
||||||
|
public void destroyBed() {
|
||||||
|
this.hasBed = false;
|
||||||
|
}
|
||||||
|
|
||||||
public MatchTeam(UUID leader, List<UUID> players, int teamID) {
|
public MatchTeam(UUID leader, List<UUID> players, int teamID) {
|
||||||
super(leader, players);
|
super(leader, players);
|
||||||
|
@ -37,6 +37,7 @@ public class PlayerData {
|
|||||||
private final Map<String, Integer> highestKillStreaks = new HashMap<>();
|
private final Map<String, Integer> highestKillStreaks = new HashMap<>();
|
||||||
private final Map<String, Integer> kitKillStreaks = new HashMap<>();
|
private final Map<String, Integer> kitKillStreaks = new HashMap<>();
|
||||||
|
|
||||||
|
|
||||||
private final Map<String, Boolean> rankedDivisionBooleanMap = new HashMap<>();
|
private final Map<String, Boolean> rankedDivisionBooleanMap = new HashMap<>();
|
||||||
|
|
||||||
private final List<String> matchIds = new ArrayList<>();
|
private final List<String> matchIds = new ArrayList<>();
|
||||||
|
Loading…
Reference in New Issue
Block a user