Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GameEnd Tweaks #487

Merged
merged 8 commits into from
Dec 20, 2022
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,7 @@ public void onEnable() {

// Register events
registerEvents(new EnderPearlLanded(), new QuitAndTeleportListener(), new BreakPlace(), new DamageDeathMove(), new Inventory(), new Interact(), new RefreshGUI(), new HungerWeatherSpawn(), new CmdProcess(),
new FireballListener(), new EggBridge(), new SpectatorListeners(), new BaseListener(), new TargetListener(), new LangListener(), new Warnings(this), new ChatAFK());
new FireballListener(), new EggBridge(), new SpectatorListeners(), new BaseListener(), new TargetListener(), new LangListener(), new Warnings(this), new ChatAFK(), new GameEndListener());
if (getServerType() == ServerType.BUNGEE) {
if (autoscale) {
//registerEvents(new ArenaListeners());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
package com.andrei1058.bedwars.arena;

import com.andrei1058.bedwars.BedWars;
import com.andrei1058.bedwars.api.arena.GameState;
import com.andrei1058.bedwars.api.arena.IArena;
import com.andrei1058.bedwars.api.arena.generator.GeneratorType;
import com.andrei1058.bedwars.api.arena.generator.IGenHolo;
Expand Down Expand Up @@ -79,7 +80,7 @@ public OreGenerator(Location location, IArena arena, GeneratorType type, ITeam b
this.bwt = bwt;
this.type = type;
loadDefaults();
BedWars.debug("Initializing new generator at: " + location.toString() + " - " + type + " - " + (bwt == null ? "NOTEAM" : bwt.getName()));
BedWars.debug("Initializing new generator at: " + location + " - " + type + " - " + (bwt == null ? "NOTEAM" : bwt.getName()));

Cuboid c = new Cuboid(location, 1, true);
c.setMaxY(c.getMaxY() + 5);
Expand Down Expand Up @@ -142,6 +143,10 @@ public void upgrade() {

@Override
public void spawn() {
if (arena.getStatus() != GameState.playing){
return;
}

if (lastSpawn == 0) {
lastSpawn = delay;

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package com.andrei1058.bedwars.listeners;

import com.andrei1058.bedwars.api.events.gameplay.GameEndEvent;
import org.bukkit.Bukkit;
import org.bukkit.World;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Item;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.inventory.ItemStack;
import org.jetbrains.annotations.NotNull;

import java.util.UUID;

public class GameEndListener implements Listener {

@EventHandler
public void cleanInventoriesAndDroppedItems(@NotNull GameEndEvent event) {
if (event.getArena().getPlayers().isEmpty()) {
return;
}

// clear inventories
for (UUID p : event.getAliveWinners()) {
Bukkit.getPlayer(p).getInventory().clear();
}

// clear dropped items
World game = event.getArena().getWorld();
for (Entity item : game.getEntities()) {
if (item instanceof Item || item instanceof ItemStack){
item.remove();
}
}
}
}