Search in sources :

Example 1 with MatchStartEvent

use of gg.projecteden.nexus.features.minigames.models.events.matches.MatchStartEvent in project Nexus by ProjectEdenGG.

the class Mechanic method onStart.

public void onStart(@NotNull MatchStartEvent event) {
    Match match = event.getMatch();
    match.broadcast("Starting match");
    match.broadcastNoPrefix("");
    int lives = match.getArena().getLives();
    if (lives > 0)
        match.getMinigamers().forEach(minigamer -> minigamer.setLives(lives));
    else
        match.getMinigamers().forEach(minigamer -> {
            if (minigamer.getTeam().getLives() > 0)
                minigamer.setLives(minigamer.getTeam().getLives());
        });
    int beginDelay = match.getArena().getBeginDelay();
    if (beginDelay > 0) {
        int taskId = match.getTasks().countdown(Countdown.builder().duration(TickTime.SECOND.x(beginDelay)).onSecond(i -> {
            if (Arrays.asList(60, 30, 15, 5, 4, 3, 2, 1).contains(i))
                match.broadcast("&7Starting in &e" + plural(i + " second", i) + "...");
        }).onComplete(() -> {
            MatchBeginEvent beginEvent = new MatchBeginEvent(match);
            if (beginEvent.callEvent())
                onBegin(beginEvent);
        }));
        match.getTasks().register(MatchTaskType.BEGIN_DELAY, taskId);
    } else {
        MatchBeginEvent beginEvent = new MatchBeginEvent(match);
        if (beginEvent.callEvent())
            onBegin(beginEvent);
    }
    int taskId = match.getTasks().repeat(0, 1, () -> match.getMinigamers().forEach(Minigamer::tick));
    match.getTasks().register(MatchTaskType.TICK, taskId);
}
Also used : Arrays(java.util.Arrays) StringUtils.plural(gg.projecteden.nexus.utils.StringUtils.plural) StringUtils(gg.projecteden.nexus.utils.StringUtils) ActionGroup(gg.projecteden.nexus.utils.Utils.ActionGroup) Match(gg.projecteden.nexus.features.minigames.models.Match) Countdown(gg.projecteden.nexus.utils.Tasks.Countdown) MatchJoinEvent(gg.projecteden.nexus.features.minigames.models.events.matches.MatchJoinEvent) Block(org.bukkit.block.Block) MatchEndEvent(gg.projecteden.nexus.features.minigames.models.events.matches.MatchEndEvent) Map(java.util.Map) Utils.getMin(gg.projecteden.nexus.utils.Utils.getMin) Team(gg.projecteden.nexus.features.minigames.models.Team) Timespan(gg.projecteden.utils.TimeUtils.Timespan) Minigames(gg.projecteden.nexus.features.minigames.Minigames) Nexus(gg.projecteden.nexus.Nexus) TextComponent(net.kyori.adventure.text.TextComponent) MatchBeginEvent(gg.projecteden.nexus.features.minigames.models.events.matches.MatchBeginEvent) MinigameModifier(gg.projecteden.nexus.features.minigames.models.modifiers.MinigameModifier) Collection(java.util.Collection) TitleBuilder(gg.projecteden.nexus.utils.TitleBuilder) MatchStartEvent(gg.projecteden.nexus.features.minigames.models.events.matches.MatchStartEvent) StringUtils.left(gg.projecteden.nexus.utils.StringUtils.left) NamedTextColor(net.kyori.adventure.text.format.NamedTextColor) Arena(gg.projecteden.nexus.features.minigames.models.Arena) ItemStack(org.bukkit.inventory.ItemStack) MinigamerDeathEvent(gg.projecteden.nexus.features.minigames.models.events.matches.minigamers.MinigamerDeathEvent) Nullable(org.jetbrains.annotations.Nullable) NoModifier(gg.projecteden.nexus.features.minigames.modifiers.NoModifier) Contract(org.jetbrains.annotations.Contract) List(java.util.List) Named(gg.projecteden.interfaces.Named) Annotation(java.lang.annotation.Annotation) NotNull(org.jetbrains.annotations.NotNull) PlayerParticlePerk(gg.projecteden.nexus.features.minigames.models.perks.common.PlayerParticlePerk) TeamMechanic(gg.projecteden.nexus.features.minigames.models.mechanics.multiplayer.teams.TeamMechanic) ActionBarUtils.sendActionBar(gg.projecteden.nexus.utils.ActionBarUtils.sendActionBar) JsonBuilder(gg.projecteden.nexus.utils.JsonBuilder) HashMap(java.util.HashMap) ComponentLike(net.kyori.adventure.text.ComponentLike) MinigamerQuitEvent(gg.projecteden.nexus.features.minigames.models.events.matches.MinigamerQuitEvent) ArrayList(java.util.ArrayList) GameMode(org.bukkit.GameMode) Component(net.kyori.adventure.text.Component) PlayerInteractEvent(org.bukkit.event.player.PlayerInteractEvent) MatchInitializeEvent(gg.projecteden.nexus.features.minigames.models.events.matches.MatchInitializeEvent) Listener(org.bukkit.event.Listener) MinigamerDisplayTimerEvent(gg.projecteden.nexus.features.minigames.models.events.matches.minigamers.sabotage.MinigamerDisplayTimerEvent) Minigamer(gg.projecteden.nexus.features.minigames.models.Minigamer) MinigamerDamageEvent(gg.projecteden.nexus.features.minigames.models.events.matches.minigamers.MinigamerDamageEvent) Perk(gg.projecteden.nexus.features.minigames.models.perks.Perk) HasDescription(gg.projecteden.nexus.framework.interfaces.HasDescription) Utils(gg.projecteden.nexus.utils.Utils) MatchTaskType(gg.projecteden.nexus.features.minigames.models.Match.MatchTasks.MatchTaskType) TickTime(gg.projecteden.utils.TimeUtils.TickTime) Collections(java.util.Collections) MatchBeginEvent(gg.projecteden.nexus.features.minigames.models.events.matches.MatchBeginEvent) Match(gg.projecteden.nexus.features.minigames.models.Match)

Example 2 with MatchStartEvent

use of gg.projecteden.nexus.features.minigames.models.events.matches.MatchStartEvent in project Nexus by ProjectEdenGG.

the class HideAndSeek method onStart.

@Override
public void onStart(@NotNull MatchStartEvent event) {
    super.onStart(event);
    Match match = event.getMatch();
    HideAndSeekMatchData matchData = match.getMatchData();
    if (matchData.getMapMaterials().size() == 0) {
        error("Arena has no blocks whitelisted!", match);
        return;
    }
    for (Minigamer minigamer : match.getMinigamers()) {
        if (isZombie(minigamer)) {
            continue;
        }
        MiscDisguise disguise = new MiscDisguise(DisguiseType.FALLING_BLOCK, matchData.getBlockChoice(minigamer));
        disguise.setEntity(minigamer.getPlayer());
        disguise.startDisguise();
        matchData.getDisguises().put(minigamer.getPlayer().getUniqueId(), disguise);
        DisguiseAPI.setActionBarShown(minigamer.getPlayer(), false);
    }
    int taskId = match.getTasks().repeat(0, 1, () -> {
        for (Minigamer minigamer : getHumans(match)) {
            Player player = minigamer.getPlayer();
            UUID userId = player.getUniqueId();
            Map<Minigamer, Location> solidPlayers = matchData.getSolidPlayers();
            int immobileTicks = minigamer.getImmobileTicks();
            Material blockChoice = matchData.getBlockChoice(userId);
            Component blockName = Component.translatable(blockChoice.getTranslationKey());
            // if player just moved, break their disguise
            if (immobileTicks < SOLIDIFY_PLAYER_AT && solidPlayers.containsKey(minigamer)) {
                blockChange(minigamer, solidPlayers.remove(minigamer), Material.AIR);
                if (player.hasPotionEffect(PotionEffectType.INVISIBILITY))
                    player.removePotionEffect(PotionEffectType.INVISIBILITY);
                FallingBlock fallingBlock = matchData.getSolidBlocks().remove(minigamer.getPlayer().getUniqueId());
                if (fallingBlock != null)
                    fallingBlock.remove();
                matchData.getDisguises().get(minigamer.getPlayer().getUniqueId()).startDisguise();
            }
            // check how long they've been still
            if (immobileTicks < TickTime.SECOND.x(2)) {
                sendBarWithTimer(minigamer, new JsonBuilder("&bYou are currently partially disguised as a ").next(blockName));
            } else if (immobileTicks < SOLIDIFY_PLAYER_AT) {
                // countdown until solidification
                int seconds = (int) Math.ceil((SOLIDIFY_PLAYER_AT - immobileTicks) / 20d);
                String display = String.format(plural("&dFully disguising in %d second", seconds) + "...", seconds);
                sendBarWithTimer(minigamer, display);
            } else {
                if (!solidPlayers.containsKey(minigamer)) {
                    Location location = minigamer.getPlayer().getLocation();
                    if (immobileTicks == SOLIDIFY_PLAYER_AT && MaterialTag.ALL_AIR.isTagged(location.getBlock().getType())) {
                        // save fake block location
                        solidPlayers.put(minigamer, location);
                        // create a falling block to render on the hider's client
                        if (blockChoice.isSolid() && blockChoice.isOccluding()) {
                            FallingBlock fallingBlock = minigamer.getPlayer().getWorld().spawnFallingBlock(getCenteredLocation(location), blockChoice.createBlockData());
                            fallingBlock.setGravity(false);
                            fallingBlock.setHurtEntities(false);
                            fallingBlock.setDropItem(false);
                            fallingBlock.setVelocity(new Vector());
                            matchData.getSolidBlocks().put(minigamer.getPlayer().getUniqueId(), fallingBlock);
                            // stop their disguise (as otherwise the hider sees 2 of their block)
                            matchData.getDisguises().get(minigamer.getPlayer().getUniqueId()).stopDisguise();
                        }
                        // add invisibility to hide them/their falling block disguise
                        player.addPotionEffect(new PotionEffectBuilder(PotionEffectType.INVISIBILITY).maxDuration().ambient(true).build());
                        // run usual ticking
                        disguisedBlockTick(minigamer);
                    } else
                        sendBarWithTimer(minigamer, "&cYou cannot fully disguise inside non-air blocks!");
                } else {
                    disguisedBlockTick(minigamer);
                }
            }
        }
    });
    match.getTasks().register(taskId);
    // separate task so this doesn't run as often
    int hunterTaskId = match.getTasks().repeat(0, 5, () -> getZombies(match).forEach(minigamer -> {
        Block block = minigamer.getPlayer().getTargetBlock(4, TargetBlockInfo.FluidMode.NEVER);
        if (block == null)
            return;
        Material type = block.getType();
        if (MaterialTag.ALL_AIR.isTagged(type))
            return;
        Component name = Component.translatable(type.getTranslationKey());
        // this will create some grammatically weird messages ("Oak Planks is a possible hider")
        // idk what to do about that though
        JsonBuilder message = new JsonBuilder();
        if (matchData.getMapMaterials().contains(type))
            message.color(NamedTextColor.GREEN).next(name).next(" is a possible hider");
        else
            message.color(NamedTextColor.RED).next(name).next(" is not a possible hider");
        sendBarWithTimer(minigamer, message);
    }));
    match.getTasks().register(hunterTaskId);
}
Also used : StringUtils.plural(gg.projecteden.nexus.utils.StringUtils.plural) Player(org.bukkit.entity.Player) Match(gg.projecteden.nexus.features.minigames.models.Match) SoundBuilder(gg.projecteden.nexus.utils.SoundBuilder) MatchJoinEvent(gg.projecteden.nexus.features.minigames.models.events.matches.MatchJoinEvent) EventHandler(org.bukkit.event.EventHandler) PlayerUtils(gg.projecteden.nexus.utils.PlayerUtils) Block(org.bukkit.block.Block) InventoryProvider(fr.minuskube.inv.content.InventoryProvider) Location(org.bukkit.Location) MaterialTag(gg.projecteden.nexus.utils.MaterialTag) InventoryContents(fr.minuskube.inv.content.InventoryContents) MatchEndEvent(gg.projecteden.nexus.features.minigames.models.events.matches.MatchEndEvent) PotionEffectBuilder(gg.projecteden.nexus.utils.PotionEffectBuilder) Map(java.util.Map) MiscDisguise(me.libraryaddict.disguise.disguisetypes.MiscDisguise) Material(org.bukkit.Material) EntityDamageByEntityEvent(org.bukkit.event.entity.EntityDamageByEntityEvent) EquipmentSlot(org.bukkit.inventory.EquipmentSlot) Minigames(gg.projecteden.nexus.features.minigames.Minigames) DisguiseType(me.libraryaddict.disguise.disguisetypes.DisguiseType) LocationUtils.getCenteredLocation(gg.projecteden.nexus.utils.LocationUtils.getCenteredLocation) StringUtils.camelCase(gg.projecteden.nexus.utils.StringUtils.camelCase) Sound(org.bukkit.Sound) UUID(java.util.UUID) MatchStartEvent(gg.projecteden.nexus.features.minigames.models.events.matches.MatchStartEvent) NamedTextColor(net.kyori.adventure.text.format.NamedTextColor) ItemStack(org.bukkit.inventory.ItemStack) MinigamerDeathEvent(gg.projecteden.nexus.features.minigames.models.events.matches.minigamers.MinigamerDeathEvent) List(java.util.List) MenuUtils(gg.projecteden.nexus.features.menus.MenuUtils) StringUtils.colorize(gg.projecteden.nexus.utils.StringUtils.colorize) FallingBlock(org.bukkit.entity.FallingBlock) NotNull(org.jetbrains.annotations.NotNull) PotionEffectType(org.bukkit.potion.PotionEffectType) SmartInventory(fr.minuskube.inv.SmartInventory) JsonBuilder(gg.projecteden.nexus.utils.JsonBuilder) PlayerManager(gg.projecteden.nexus.features.minigames.managers.PlayerManager) HashMap(java.util.HashMap) Action(org.bukkit.event.block.Action) HideAndSeekMatchData(gg.projecteden.nexus.features.minigames.models.matchdata.HideAndSeekMatchData) MinigamerQuitEvent(gg.projecteden.nexus.features.minigames.models.events.matches.MinigamerQuitEvent) ArrayList(java.util.ArrayList) GameMode(org.bukkit.GameMode) Component(net.kyori.adventure.text.Component) PlayerInteractEvent(org.bukkit.event.player.PlayerInteractEvent) EntityDamageEvent(org.bukkit.event.entity.EntityDamageEvent) ClickableItem(fr.minuskube.inv.ClickableItem) ItemBuilder(gg.projecteden.nexus.utils.ItemBuilder) SoundCategory(org.bukkit.SoundCategory) LocationUtils.blockLocationsEqual(gg.projecteden.nexus.utils.LocationUtils.blockLocationsEqual) Minigamer(gg.projecteden.nexus.features.minigames.models.Minigamer) Perk(gg.projecteden.nexus.features.minigames.models.perks.Perk) Utils(gg.projecteden.nexus.utils.Utils) TargetBlockInfo(com.destroystokyo.paper.block.TargetBlockInfo) DisguiseAPI(me.libraryaddict.disguise.DisguiseAPI) Vector(org.bukkit.util.Vector) TickTime(gg.projecteden.utils.TimeUtils.TickTime) Player(org.bukkit.entity.Player) MiscDisguise(me.libraryaddict.disguise.disguisetypes.MiscDisguise) Material(org.bukkit.Material) Minigamer(gg.projecteden.nexus.features.minigames.models.Minigamer) Match(gg.projecteden.nexus.features.minigames.models.Match) FallingBlock(org.bukkit.entity.FallingBlock) JsonBuilder(gg.projecteden.nexus.utils.JsonBuilder) Block(org.bukkit.block.Block) FallingBlock(org.bukkit.entity.FallingBlock) UUID(java.util.UUID) Component(net.kyori.adventure.text.Component) Vector(org.bukkit.util.Vector) PotionEffectBuilder(gg.projecteden.nexus.utils.PotionEffectBuilder) HideAndSeekMatchData(gg.projecteden.nexus.features.minigames.models.matchdata.HideAndSeekMatchData) Location(org.bukkit.Location) LocationUtils.getCenteredLocation(gg.projecteden.nexus.utils.LocationUtils.getCenteredLocation)

Example 3 with MatchStartEvent

use of gg.projecteden.nexus.features.minigames.models.events.matches.MatchStartEvent in project Nexus by ProjectEdenGG.

the class HoleInTheWall method onStart.

@Override
public void onStart(@NotNull MatchStartEvent event) {
    super.onStart(event);
    Match match = event.getMatch();
    HoleInTheWallArena arena = event.getMatch().getArena();
    HoleInTheWallMatchData matchData = event.getMatch().getMatchData();
    matchData.getTracks().forEach(track -> {
        Optional<Minigamer> minigamer = arena.worldguard().getPlayersInRegion(track.getRegion()).stream().map(PlayerManager::get).filter(_minigamer -> _minigamer.isPlaying(match)).findFirst();
        minigamer.ifPresent(track::setMinigamer);
    });
    match.getTasks().countdown(Countdown.builder().duration(TickTime.SECOND.x(5)).onSecond(i -> match.broadcast("&7Starting in &e" + i + "...")).onComplete(() -> {
        match.broadcast("Go!");
        matchData.getTracks().stream().filter(track -> track.getMinigamer() != null).forEach(Track::start);
    }));
}
Also used : ProtectedRegion(com.sk89q.worldguard.protection.regions.ProtectedRegion) ActionGroup(gg.projecteden.nexus.utils.Utils.ActionGroup) PlayerManager(gg.projecteden.nexus.features.minigames.managers.PlayerManager) PlayerMoveEvent(org.bukkit.event.player.PlayerMoveEvent) Player(org.bukkit.entity.Player) Action(org.bukkit.event.block.Action) TeamlessMechanic(gg.projecteden.nexus.features.minigames.models.mechanics.multiplayer.teamless.TeamlessMechanic) Match(gg.projecteden.nexus.features.minigames.models.Match) MinigamerQuitEvent(gg.projecteden.nexus.features.minigames.models.events.matches.MinigamerQuitEvent) Countdown(gg.projecteden.nexus.utils.Tasks.Countdown) EventHandler(org.bukkit.event.EventHandler) GameMode(org.bukkit.GameMode) Location(org.bukkit.Location) MaterialTag(gg.projecteden.nexus.utils.MaterialTag) MatchEndEvent(gg.projecteden.nexus.features.minigames.models.events.matches.MatchEndEvent) PlayerInteractEvent(org.bukkit.event.player.PlayerInteractEvent) StringUtils.getLocationString(gg.projecteden.nexus.utils.StringUtils.getLocationString) MatchInitializeEvent(gg.projecteden.nexus.features.minigames.models.events.matches.MatchInitializeEvent) Material(org.bukkit.Material) BlockPlaceEvent(org.bukkit.event.block.BlockPlaceEvent) Sign(org.bukkit.block.Sign) SoundCategory(org.bukkit.SoundCategory) Minigamer(gg.projecteden.nexus.features.minigames.models.Minigamer) Set(java.util.Set) Sound(org.bukkit.Sound) UUID(java.util.UUID) MatchStartEvent(gg.projecteden.nexus.features.minigames.models.events.matches.MatchStartEvent) CooldownService(gg.projecteden.nexus.models.cooldown.CooldownService) Track(gg.projecteden.nexus.features.minigames.models.matchdata.HoleInTheWallMatchData.Track) ItemStack(org.bukkit.inventory.ItemStack) StringUtils.stripColor(gg.projecteden.nexus.utils.StringUtils.stripColor) TickTime(gg.projecteden.utils.TimeUtils.TickTime) MinigameException(gg.projecteden.nexus.features.minigames.models.exceptions.MinigameException) PlayerLeavingRegionEvent(gg.projecteden.nexus.features.regionapi.events.player.PlayerLeavingRegionEvent) HoleInTheWallArena(gg.projecteden.nexus.features.minigames.models.arenas.HoleInTheWallArena) HoleInTheWallMatchData(gg.projecteden.nexus.features.minigames.models.matchdata.HoleInTheWallMatchData) Optional(java.util.Optional) NotNull(org.jetbrains.annotations.NotNull) PlayerManager(gg.projecteden.nexus.features.minigames.managers.PlayerManager) HoleInTheWallArena(gg.projecteden.nexus.features.minigames.models.arenas.HoleInTheWallArena) Minigamer(gg.projecteden.nexus.features.minigames.models.Minigamer) HoleInTheWallMatchData(gg.projecteden.nexus.features.minigames.models.matchdata.HoleInTheWallMatchData) Match(gg.projecteden.nexus.features.minigames.models.Match)

Example 4 with MatchStartEvent

use of gg.projecteden.nexus.features.minigames.models.events.matches.MatchStartEvent in project Nexus by ProjectEdenGG.

the class MonsterMaze method onStart.

@Override
public void onStart(@NotNull MatchStartEvent event) {
    super.onStart(event);
    Match match = event.getMatch();
    MonsterMazeMatchData matchData = match.getMatchData();
    ProtectedRegion floor = match.getArena().getProtectedRegion("floor");
    List<Location> goals = new ArrayList<>();
    for (BlockVector3 vector : match.getArena().getRegion("floor")) {
        Location location = match.worldguard().toLocation(vector);
        if (location.getBlock().getType() == goalMaterial)
            goals.add(location.add(0, 1, 0));
    }
    List<Block> spawnpoints = match.worldguard().getRandomBlocks(floor, floorMaterial, MONSTERS);
    spawnpoints.stream().map(block -> block.getLocation().add(.5, 1, .5)).forEach(spawnpoint -> {
        Mob monster = match.spawn(spawnpoint, Zombie.class);
        monster.setAI(false);
        monster.setSilent(true);
        monster.setCollidable(false);
        monster.setInvulnerable(true);
        matchData.getMonsters().add(monster);
    });
    match.getMinigamers().forEach(this::preventJump);
    match.getTasks().wait(TickTime.SECOND.x(5), () -> {
        for (Mob monster : matchData.getMonsters()) {
            monster.setAI(true);
            updatePath(monster, goals);
        }
        match.getTasks().repeat(TickTime.SECOND.x(7), 30, () -> {
            for (Mob monster : matchData.getMonsters()) if (!monster.getPathfinder().hasPath())
                updatePath(monster, goals);
        });
        match.getTasks().repeat(0, 2, () -> {
            for (Minigamer minigamer : match.getMinigamers()) for (Mob monster : matchData.getMonsters()) {
                double distance = monster.getLocation().distance(minigamer.getPlayer().getLocation());
                if (distance < .7) {
                    minigamer.getPlayer().damage(4);
                    launch(minigamer, monster);
                }
            }
        });
        List<Block> powerupLocations = match.worldguard().getRandomBlocks(floor, floorMaterial, POWERUPS);
        match.broadcast("Power ups have spawned!");
        for (Block block : powerupLocations) new PowerUpUtils(match, Arrays.asList(JUMPS)).spawn(block.getLocation().add(0, 1, 0), true);
    });
}
Also used : Arrays(java.util.Arrays) ProtectedRegion(com.sk89q.worldguard.protection.regions.ProtectedRegion) BlockVector3(com.sk89q.worldedit.math.BlockVector3) Mob(org.bukkit.entity.Mob) Zombie(org.bukkit.entity.Zombie) PlayerManager(gg.projecteden.nexus.features.minigames.managers.PlayerManager) PowerUpUtils(gg.projecteden.nexus.features.minigames.utils.PowerUpUtils) HashMap(java.util.HashMap) MonsterMazeMatchData(gg.projecteden.nexus.features.minigames.models.matchdata.MonsterMazeMatchData) TeamlessMechanic(gg.projecteden.nexus.features.minigames.models.mechanics.multiplayer.teamless.TeamlessMechanic) Match(gg.projecteden.nexus.features.minigames.models.Match) ArrayList(java.util.ArrayList) EventHandler(org.bukkit.event.EventHandler) Block(org.bukkit.block.Block) Location(org.bukkit.Location) MatchEndEvent(gg.projecteden.nexus.features.minigames.models.events.matches.MatchEndEvent) RandomUtils(gg.projecteden.nexus.utils.RandomUtils) PotionEffectBuilder(gg.projecteden.nexus.utils.PotionEffectBuilder) Map(java.util.Map) PlayerInventory(org.bukkit.inventory.PlayerInventory) Material(org.bukkit.Material) Nexus(gg.projecteden.nexus.Nexus) Entity(org.bukkit.entity.Entity) Minigamer(gg.projecteden.nexus.features.minigames.models.Minigamer) MatchStartEvent(gg.projecteden.nexus.features.minigames.models.events.matches.MatchStartEvent) Collectors(java.util.stream.Collectors) ItemStack(org.bukkit.inventory.ItemStack) Vector(org.bukkit.util.Vector) TickTime(gg.projecteden.utils.TimeUtils.TickTime) PlayerJumpEvent(com.destroystokyo.paper.event.player.PlayerJumpEvent) List(java.util.List) NotNull(org.jetbrains.annotations.NotNull) PotionEffectType(org.bukkit.potion.PotionEffectType) Mob(org.bukkit.entity.Mob) ArrayList(java.util.ArrayList) BlockVector3(com.sk89q.worldedit.math.BlockVector3) Minigamer(gg.projecteden.nexus.features.minigames.models.Minigamer) Match(gg.projecteden.nexus.features.minigames.models.Match) ProtectedRegion(com.sk89q.worldguard.protection.regions.ProtectedRegion) Block(org.bukkit.block.Block) MonsterMazeMatchData(gg.projecteden.nexus.features.minigames.models.matchdata.MonsterMazeMatchData) PowerUpUtils(gg.projecteden.nexus.features.minigames.utils.PowerUpUtils) Location(org.bukkit.Location)

Aggregations

Match (gg.projecteden.nexus.features.minigames.models.Match)4 Minigamer (gg.projecteden.nexus.features.minigames.models.Minigamer)4 MatchEndEvent (gg.projecteden.nexus.features.minigames.models.events.matches.MatchEndEvent)4 MatchStartEvent (gg.projecteden.nexus.features.minigames.models.events.matches.MatchStartEvent)4 TickTime (gg.projecteden.utils.TimeUtils.TickTime)4 ItemStack (org.bukkit.inventory.ItemStack)4 NotNull (org.jetbrains.annotations.NotNull)4 PlayerManager (gg.projecteden.nexus.features.minigames.managers.PlayerManager)3 MinigamerQuitEvent (gg.projecteden.nexus.features.minigames.models.events.matches.MinigamerQuitEvent)3 ArrayList (java.util.ArrayList)3 HashMap (java.util.HashMap)3 List (java.util.List)3 Map (java.util.Map)3 GameMode (org.bukkit.GameMode)3 Location (org.bukkit.Location)3 Material (org.bukkit.Material)3 Block (org.bukkit.block.Block)3 EventHandler (org.bukkit.event.EventHandler)3 PlayerInteractEvent (org.bukkit.event.player.PlayerInteractEvent)3 ProtectedRegion (com.sk89q.worldguard.protection.regions.ProtectedRegion)2