Fix many simple things

This commit is contained in:
2025-05-11 19:02:02 +02:00
parent ac00245b04
commit b229b0d0ae
2 changed files with 59 additions and 16 deletions
@@ -140,8 +140,10 @@ public class TowerGenerator {
noKeyFloors--;
if (!chestBlocks.isEmpty() && noKeyFloors < 0 && random.nextDouble() < config.keyChance) {
noKeyFloors = random.nextInt(config.maxNoKeyFloors - config.minNoKeyFloors) + config.minNoKeyFloors;
for (int i = 0; i < 2; i++) {
Container container = chestBlocks.get(random.nextInt(chestBlocks.size()));
keys.add(container.getLocation());
}
for (WorldConfig.TowerGeneratorDoorBlock doorBlock : config.doorBlocks) {
int x = doorBlock.getX();
@@ -20,6 +20,7 @@
package de.steamwar.towerrun.listener;
import de.steamwar.inventory.SWItem;
import de.steamwar.network.packets.server.BaumemberUpdatePacket;
import de.steamwar.towerrun.TowerRun;
import de.steamwar.towerrun.config.Config;
import de.steamwar.towerrun.config.WorldConfig;
@@ -84,16 +85,16 @@ public class IngameListener extends GameStateBukkitListener {
@Override
public void run() {
double minY = TowerRunGame.PLAYERS_ALIVE.stream()
.map(p -> p.player().getLocation().getY())
.min(Comparator.comparing(Function.identity()))
.mapToDouble(p -> p.player().getLocation().getY())
.average()
.orElse(0.0);
List<Player> toDamage = new ArrayList<>();
TowerRunGame.PLAYERS_ALIVE.forEach(towerRunPlayer -> {
if (towerRunPlayer.player().getLocation().getY() - minY > 20) {
towerRunPlayer.player().sendTitle("§a", TowerRun.getMessage().parse("CATCH_UP_WARNING", towerRunPlayer.player()), 5, 30, 5);
}
if (towerRunPlayer.player().getLocation().getY() - minY > 30) {
towerRunPlayer.player().sendTitle("", TowerRun.getMessage().parse("CATCH_UP_WARNING", towerRunPlayer.player()), 5, 30, 5);
}
if (towerRunPlayer.player().getLocation().getY() - minY > 50) {
toDamage.add(towerRunPlayer.player());
}
});
@@ -185,10 +186,12 @@ public class IngameListener extends GameStateBukkitListener {
}
event.getPlayer().getInventory().addItem(new SWItem(Material.LEVER, TowerRun.getMessage().parse("KEY_NAME", event.getPlayer())).getItemStack());
event.getClickedBlock().setType(Material.ENDER_CHEST);
event.getPlayer().playSound(event.getPlayer().getLocation(), Sound.BLOCK_ENDER_CHEST_OPEN, 1, 1);
TowerRun.getMessage().broadcast("KEY_FOUND", event.getPlayer().getName());
Bukkit.getOnlinePlayers().forEach(player -> {
player.playSound(event.getPlayer().getLocation(), Sound.BLOCK_ENDER_CHEST_OPEN, 1, 1);
player.sendTitle("", TowerRun.getMessage().parse("KEY_FOUND", player, event.getPlayer().getName()), 10, 70, 20);
});
}
@EventHandler
@@ -211,6 +214,44 @@ public class IngameListener extends GameStateBukkitListener {
private void shouldMelt(Block block) {
if (block.getType().isBurnable()) return;
int meltingTime = (int) (block.getType().getHardness() * 48 * 20);
switch (block.getType()) {
case TINTED_GLASS:
case WHITE_STAINED_GLASS:
case ORANGE_STAINED_GLASS:
case MAGENTA_STAINED_GLASS:
case LIGHT_BLUE_STAINED_GLASS:
case YELLOW_STAINED_GLASS:
case LIME_STAINED_GLASS:
case PINK_STAINED_GLASS:
case GRAY_STAINED_GLASS:
case LIGHT_GRAY_STAINED_GLASS:
case CYAN_STAINED_GLASS:
case PURPLE_STAINED_GLASS:
case BLUE_STAINED_GLASS:
case BROWN_STAINED_GLASS:
case GREEN_STAINED_GLASS:
case RED_STAINED_GLASS:
case BLACK_STAINED_GLASS:
case WHITE_STAINED_GLASS_PANE:
case ORANGE_STAINED_GLASS_PANE:
case MAGENTA_STAINED_GLASS_PANE:
case LIGHT_BLUE_STAINED_GLASS_PANE:
case YELLOW_STAINED_GLASS_PANE:
case LIME_STAINED_GLASS_PANE:
case PINK_STAINED_GLASS_PANE:
case GRAY_STAINED_GLASS_PANE:
case LIGHT_GRAY_STAINED_GLASS_PANE:
case CYAN_STAINED_GLASS_PANE:
case PURPLE_STAINED_GLASS_PANE:
case BLUE_STAINED_GLASS_PANE:
case BROWN_STAINED_GLASS_PANE:
case GREEN_STAINED_GLASS_PANE:
case RED_STAINED_GLASS_PANE:
case BLACK_STAINED_GLASS_PANE:
meltingTime = meltingTime * 10;
default:
break;
}
blocksToMelt.computeIfAbsent(time + meltingTime, integer -> new ArrayList<>()).add(block);
}