updated minestom version, breaking some behaviour
This commit is contained in:
		| @@ -1,6 +1,7 @@ | ||||
| package eu.mhsl.minenet.minigames.instance; | ||||
|  | ||||
| import net.minestom.server.MinecraftServer; | ||||
| import net.minestom.server.registry.DynamicRegistry; | ||||
| import net.minestom.server.utils.NamespaceID; | ||||
| import net.minestom.server.world.DimensionType; | ||||
|  | ||||
| @@ -9,33 +10,39 @@ import net.minestom.server.world.DimensionType; | ||||
|  */ | ||||
| public enum Dimension { | ||||
|     OVERWORLD( | ||||
|             NamespaceID.from("minenet:fullbright_overworld"), | ||||
|             DimensionType | ||||
|                     .builder(NamespaceID.from("minenet:fullbright_overworld")) | ||||
|                     .builder() | ||||
|                     .ambientLight(2.0f) | ||||
|                     .build() | ||||
|     ), | ||||
|  | ||||
|     NETHER( | ||||
|             NamespaceID.from("minenet:fullbright_nether"), | ||||
|             DimensionType | ||||
|                     .builder(NamespaceID.from("minenet:fullbright_nether")) | ||||
|                     .builder() | ||||
|                     .ambientLight(2.0f) | ||||
|                     .effects("minecraft:the_nether") | ||||
|                     .build() | ||||
|     ), | ||||
|  | ||||
|     THE_END( | ||||
|             NamespaceID.from("minenet:fullbright_end"), | ||||
|             DimensionType | ||||
|                     .builder(NamespaceID.from("minenet:fullbright_end")) | ||||
|                     .builder() | ||||
|                     .ambientLight(2.0f) | ||||
|                     .effects("minecraft:the_end") | ||||
|                     .build() | ||||
|     ); | ||||
|  | ||||
|     public final DimensionType DIMENSION; | ||||
|     Dimension(DimensionType dimType) { | ||||
|     public final NamespaceID namespaceID; | ||||
|     public final DynamicRegistry.Key<DimensionType> key; | ||||
|     Dimension(NamespaceID namespaceID, DimensionType dimType) { | ||||
|         this.DIMENSION = dimType; | ||||
|         this.namespaceID = namespaceID; | ||||
|  | ||||
|         MinecraftServer.getDimensionTypeManager().addDimension(this.DIMENSION); | ||||
|         this.key = MinecraftServer.getDimensionTypeRegistry().register(namespaceID, DIMENSION); | ||||
|     } | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -7,13 +7,15 @@ import net.minestom.server.event.instance.AddEntityToInstanceEvent; | ||||
| import net.minestom.server.event.instance.RemoveEntityFromInstanceEvent; | ||||
| import net.minestom.server.instance.Instance; | ||||
| import net.minestom.server.instance.InstanceContainer; | ||||
| import net.minestom.server.instance.InstanceManager; | ||||
| import net.minestom.server.registry.DynamicRegistry; | ||||
| import net.minestom.server.timer.TaskSchedule; | ||||
| import net.minestom.server.world.DimensionType; | ||||
|  | ||||
| import java.util.UUID; | ||||
|  | ||||
| public class MineNetInstance extends InstanceContainer { | ||||
|     public MineNetInstance(DimensionType type) { | ||||
|     public MineNetInstance(DynamicRegistry.Key<DimensionType> type) { | ||||
|         super(UUID.randomUUID(), type); | ||||
|         MinecraftServer.getInstanceManager().registerInstance(this); | ||||
|  | ||||
|   | ||||
| @@ -16,6 +16,7 @@ import net.minestom.server.event.item.ItemDropEvent; | ||||
| import net.minestom.server.event.player.PlayerBlockBreakEvent; | ||||
| import net.minestom.server.event.player.PlayerBlockPlaceEvent; | ||||
| import net.minestom.server.event.player.PlayerMoveEvent; | ||||
| import net.minestom.server.registry.DynamicRegistry; | ||||
| import net.minestom.server.timer.ExecutionType; | ||||
| import net.minestom.server.timer.TaskSchedule; | ||||
| import net.minestom.server.world.DimensionType; | ||||
| @@ -36,7 +37,7 @@ public abstract class Game extends MineNetInstance implements Spawnable { | ||||
|  | ||||
|     protected final Logger logger; | ||||
|  | ||||
|     public Game(DimensionType dimensionType) { | ||||
|     public Game(DynamicRegistry.Key<DimensionType> dimensionType) { | ||||
|         super(dimensionType); | ||||
|  | ||||
|         MinecraftServer.getInstanceManager().registerInstance(this); | ||||
| @@ -78,7 +79,7 @@ public abstract class Game extends MineNetInstance implements Spawnable { | ||||
|             this.onLoad(callback); | ||||
| //            callback.whenComplete((unused, throwable) -> this.start()); | ||||
|             return TaskSchedule.stop(); | ||||
|         }, ExecutionType.ASYNC); | ||||
|         }, ExecutionType.TICK_END); | ||||
|  | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -9,6 +9,7 @@ import eu.mhsl.minenet.minigames.score.Score; | ||||
| import net.kyori.adventure.audience.Audience; | ||||
| import net.kyori.adventure.text.Component; | ||||
| import net.kyori.adventure.text.format.NamedTextColor; | ||||
| import net.minestom.server.registry.DynamicRegistry; | ||||
| import net.minestom.server.timer.ExecutionType; | ||||
| import net.minestom.server.timer.TaskSchedule; | ||||
| import net.minestom.server.world.DimensionType; | ||||
| @@ -22,7 +23,7 @@ public class StatelessGame extends Game { | ||||
|  | ||||
|     private int timeLimit = 0; | ||||
|     private int timePlayed = 0; | ||||
|     public StatelessGame(DimensionType dimensionType, String gameName, Score score) { | ||||
|     public StatelessGame(DynamicRegistry.Key<DimensionType> dimensionType, String gameName, Score score) { | ||||
|         super(dimensionType); | ||||
|         this.score = score; | ||||
|         this.name = gameName; | ||||
| @@ -55,7 +56,7 @@ public class StatelessGame extends Game { | ||||
|                 timePlayed++; | ||||
|  | ||||
|                 return TaskSchedule.seconds(1); | ||||
|             }, ExecutionType.SYNC); | ||||
|             }, ExecutionType.TICK_START); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -47,7 +47,7 @@ public class GameConfigurationInventory extends InteractableInventory { | ||||
|  | ||||
|         setClickableItem( | ||||
|                 ItemStack.builder(Material.RED_WOOL) | ||||
|                         .displayName( | ||||
|                         .customName( | ||||
|                                 TranslatedComponent.byId("common#back") | ||||
|                                         .setColor(NamedTextColor.RED) | ||||
|                                         .getAssembled(p) | ||||
| @@ -62,7 +62,7 @@ public class GameConfigurationInventory extends InteractableInventory { | ||||
|  | ||||
|         setDummyItem( | ||||
|                 ItemStack.builder(Material.NAME_TAG) | ||||
|                         .displayName( | ||||
|                         .customName( | ||||
|                                 factory.name().setColor(NamedTextColor.GOLD).getAssembled(p) | ||||
|                         ) | ||||
|                         .build(), | ||||
| @@ -80,7 +80,7 @@ public class GameConfigurationInventory extends InteractableInventory { | ||||
|         if(config == null) { | ||||
|             setDummyItem( | ||||
|                     ItemStack.builder(Material.BARRIER) | ||||
|                             .displayName( | ||||
|                             .customName( | ||||
|                                     TranslatedComponent.byId("room#noOption").setColor(NamedTextColor.RED).getAssembled(p) | ||||
|                             ) | ||||
|                             .lore( | ||||
| @@ -130,7 +130,7 @@ public class GameConfigurationInventory extends InteractableInventory { | ||||
|  | ||||
|             setClickableItem( | ||||
|                     ItemStack.builder(restrictionHandler.getWarnings(restrictionData).size() > 0 ? Material.YELLOW_WOOL : Material.GREEN_WOOL) | ||||
|                             .displayName(TranslatedComponent.byId("restriction#success").setColor(NamedTextColor.GREEN).getAssembled(p)) | ||||
|                             .customName(TranslatedComponent.byId("restriction#success").setColor(NamedTextColor.GREEN).getAssembled(p)) | ||||
|                             .lore(restrictionHandler.getWarnings(restrictionData).stream().map(translatedComponent -> translatedComponent.getAssembled(p)).collect(Collectors.toList())) | ||||
|                             .build(), | ||||
|                     8, | ||||
| @@ -142,7 +142,7 @@ public class GameConfigurationInventory extends InteractableInventory { | ||||
|  | ||||
|             setClickableItem( | ||||
|                     ItemStack.builder(Material.RED_WOOL) | ||||
|                             .displayName(TranslatedComponent.byId("restriction#fail").setColor(NamedTextColor.RED).getAssembled(p)) | ||||
|                             .customName(TranslatedComponent.byId("restriction#fail").setColor(NamedTextColor.RED).getAssembled(p)) | ||||
|                             .lore( | ||||
|                                     restrictionHandler.getRestrictions() | ||||
|                                             .stream() | ||||
|   | ||||
| @@ -46,7 +46,7 @@ public abstract class Option<T> { | ||||
|     public ItemStack getCurrent(Player p) { | ||||
|         int amount = Integer.parseInt(options.get(pointer).toString()); | ||||
|         return ItemStack.builder(item) | ||||
|                 .displayName(name.getAssembled(p)) | ||||
|                 .customName(name.getAssembled(p)) | ||||
|                 .lore(TranslatedComponent.byId("optionCommon#value").setColor(NamedTextColor.GOLD).getAssembled(p) | ||||
|                         .append(Component.text(": ")).append(Component.text(amount))) | ||||
|                 .build(); | ||||
|   | ||||
| @@ -17,8 +17,8 @@ import net.minestom.server.event.player.PlayerMoveEvent; | ||||
| import net.minestom.server.event.player.PlayerTickEvent; | ||||
| import net.minestom.server.instance.batch.AbsoluteBlockBatch; | ||||
| import net.minestom.server.instance.block.Block; | ||||
| import net.minestom.server.network.packet.server.play.ParticlePacket; | ||||
| import net.minestom.server.particle.Particle; | ||||
| import net.minestom.server.particle.ParticleCreator; | ||||
| import net.minestom.server.timer.ExecutionType; | ||||
| import net.minestom.server.timer.TaskSchedule; | ||||
| import org.jetbrains.annotations.NotNull; | ||||
| @@ -38,7 +38,7 @@ public class AcidRain extends StatelessGame { | ||||
|             .setFrequency(0.09) | ||||
|             .build(); | ||||
|     public AcidRain() { | ||||
|         super(Dimension.OVERWORLD.DIMENSION, "acidRain", new LastWinsScore()); | ||||
|         super(Dimension.OVERWORLD.key, "acidRain", new LastWinsScore()); | ||||
|         setGenerator( | ||||
|                 new CircularPlateTerrainGenerator(radius) | ||||
|                         .setPlateHeight(50) | ||||
| @@ -62,13 +62,13 @@ public class AcidRain extends StatelessGame { | ||||
|         MinecraftServer.getSchedulerManager().submitTask(() -> { | ||||
|  | ||||
|             getPlayers().forEach(player -> { | ||||
|                 player.sendPacket(ParticleCreator.createParticlePacket(Particle.SNEEZE, 0, 60, 0, radius, radius, radius, 500)); | ||||
|                 player.sendPacket(ParticleCreator.createParticlePacket(Particle.ITEM_SLIME, 0, 60, 0, radius, radius, radius, 500)); | ||||
|                 player.sendPacket(new ParticlePacket(Particle.SNEEZE, 0, 60, 0, radius, radius, radius, 1f, 500)); | ||||
|                 player.sendPacket(new ParticlePacket(Particle.ITEM_SLIME, 0, 60, 0, radius, radius, radius, 1f, 500)); | ||||
|             }); | ||||
|  | ||||
|             if(!isRunning) return TaskSchedule.stop(); | ||||
|             return TaskSchedule.millis(100); | ||||
|         }, ExecutionType.ASYNC); | ||||
|         }, ExecutionType.TICK_END); | ||||
|  | ||||
|         MinecraftServer.getSchedulerManager().submitTask(() -> { | ||||
|             generationOffset++; | ||||
| @@ -76,7 +76,7 @@ public class AcidRain extends StatelessGame { | ||||
|  | ||||
|             if(!isRunning) return TaskSchedule.stop(); | ||||
|             return TaskSchedule.millis((long) NumberUtil.map(50 - difficulty, 0, 50, 100, 1000)); | ||||
|         }, ExecutionType.ASYNC); | ||||
|         }, ExecutionType.TICK_END); | ||||
|  | ||||
|         MinecraftServer.getSchedulerManager().submitTask(() -> { | ||||
|             difficulty++; | ||||
|   | ||||
| @@ -8,7 +8,7 @@ import org.jetbrains.annotations.NotNull; | ||||
|  | ||||
| public class Backrooms extends StatelessGame { | ||||
|     public Backrooms() { | ||||
|         super(Dimension.NETHER.DIMENSION, "Backrooms", new NoScore()); | ||||
|         super(Dimension.NETHER.key, "Backrooms", new NoScore()); | ||||
|         BackroomsGenerator generator = new BackroomsGenerator(); | ||||
|         setGenerator(unit -> generator.generateRoom(unit, 50)); | ||||
|     } | ||||
|   | ||||
| @@ -21,7 +21,7 @@ import net.minestom.server.event.item.PickupItemEvent; | ||||
| import net.minestom.server.event.player.PlayerBlockBreakEvent; | ||||
| import net.minestom.server.event.player.PlayerBlockPlaceEvent; | ||||
| import net.minestom.server.event.player.PlayerMoveEvent; | ||||
| import net.minestom.server.instance.AnvilLoader; | ||||
| import net.minestom.server.instance.anvil.AnvilLoader; | ||||
| import net.minestom.server.item.ItemStack; | ||||
| import net.minestom.server.item.Material; | ||||
| import net.minestom.server.timer.ExecutionType; | ||||
| @@ -38,7 +38,7 @@ public class Bedwars extends StatelessGame { | ||||
|  | ||||
|  | ||||
|     public Bedwars() throws IOException { | ||||
|         super(Dimension.OVERWORLD.DIMENSION, "Bedwars", new LastWinsScore()); | ||||
|         super(Dimension.OVERWORLD.key, "Bedwars", new LastWinsScore()); | ||||
|         setChunkLoader(new AnvilLoader(Resource.GAME_MAP.getPath().resolve("bedwars/test"))); | ||||
|  | ||||
|         Configuration config = ConfigurationProvider.getProvider(YamlConfiguration.class).load(Resource.GAME_MAP.getPath().resolve("bedwars/test/config.yml").toFile()); | ||||
| @@ -78,7 +78,7 @@ public class Bedwars extends StatelessGame { | ||||
|             }); | ||||
|  | ||||
|             return TaskSchedule.stop(); | ||||
|         }, ExecutionType.SYNC); | ||||
|         }, ExecutionType.TICK_END); | ||||
|  | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -6,24 +6,24 @@ import eu.mhsl.minenet.minigames.message.component.TranslatedComponent; | ||||
| import eu.mhsl.minenet.minigames.score.LastWinsScore; | ||||
| import eu.mhsl.minenet.minigames.util.BatchUtil; | ||||
| import eu.mhsl.minenet.minigames.util.GeneratorUtils; | ||||
| import io.github.bloepiloepi.pvp.events.ProjectileHitEvent; | ||||
| import io.github.bloepiloepi.pvp.projectile.CustomEntityProjectile; | ||||
| import io.github.togar2.pvp.entity.projectile.CustomEntityProjectile; | ||||
| import net.minestom.server.coordinate.Point; | ||||
| import net.minestom.server.coordinate.Pos; | ||||
| import net.minestom.server.coordinate.Vec; | ||||
| import net.minestom.server.entity.*; | ||||
| import net.minestom.server.entity.metadata.arrow.ArrowMeta; | ||||
| import net.minestom.server.entity.metadata.other.PrimedTntMeta; | ||||
| import net.minestom.server.entity.metadata.projectile.ArrowMeta; | ||||
| import net.minestom.server.event.EventListener; | ||||
| import net.minestom.server.event.entity.projectile.ProjectileCollideWithBlockEvent; | ||||
| import net.minestom.server.event.entity.projectile.ProjectileCollideWithEntityEvent; | ||||
| import net.minestom.server.event.item.ItemUpdateStateEvent; | ||||
| import net.minestom.server.event.player.PlayerItemAnimationEvent; | ||||
| import net.minestom.server.event.player.PlayerMoveEvent; | ||||
| import net.minestom.server.instance.batch.AbsoluteBlockBatch; | ||||
| import net.minestom.server.instance.block.Block; | ||||
| import net.minestom.server.item.Enchantment; | ||||
| import net.minestom.server.item.ItemHideFlag; | ||||
| import net.minestom.server.item.ItemStack; | ||||
| import net.minestom.server.item.Material; | ||||
| import net.minestom.server.item.enchant.Enchantment; | ||||
| import net.minestom.server.tag.Tag; | ||||
| import net.minestom.server.utils.MathUtils; | ||||
| import net.minestom.server.utils.time.TimeUnit; | ||||
| @@ -39,7 +39,7 @@ public class BowSpleef extends StatelessGame { | ||||
|     private final int radius = 30; | ||||
|     private final int totalElevation = 50; | ||||
|     public BowSpleef() { | ||||
|         super(Dimension.OVERWORLD.DIMENSION, "bowSpleef", new LastWinsScore()); | ||||
|         super(Dimension.OVERWORLD.key, "bowSpleef", new LastWinsScore()); | ||||
|  | ||||
|         eventNode().addListener( | ||||
|                 EventListener | ||||
| @@ -58,17 +58,17 @@ public class BowSpleef extends StatelessGame { | ||||
|                             final double power = MathUtils.clamp((chargedFor * chargedFor + 2 * chargedFor) / 2D, 0, 1); | ||||
|  | ||||
|                             if (power > 0.2) { | ||||
|                                 final CustomEntityProjectile projectile = new CustomEntityProjectile(player, EntityType.ARROW, true); | ||||
|                                 final CustomEntityProjectile projectile = new CustomEntityProjectile(player, EntityType.ARROW); | ||||
|                                 final ArrowMeta meta = (ArrowMeta) projectile.getEntityMeta(); | ||||
|                                 meta.setCritical(power >= 0.9); | ||||
|                                 projectile.scheduleRemove(Duration.of(100, TimeUnit.SERVER_TICK)); | ||||
|                                 projectile.setOnFire(true); | ||||
|                                 meta.setOnFire(true); | ||||
|  | ||||
|                                 final Pos position = player.getPosition().add(0, player.getEyeHeight(), 0); | ||||
|                                 projectile.setInstance(Objects.requireNonNull(player.getInstance()), position); | ||||
|  | ||||
|                                 final Vec direction = projectile.getPosition().direction(); | ||||
|                                 projectile.shoot(position.add(direction).sub(0, 0.2, 0), power * 3, 1.0); | ||||
|                                 projectile.shootFrom(position.add(direction).sub(0, 0.2, 0), power * 3, 1.0); | ||||
|                                 projectile.setTag(ARROW_FIRST_HIT, true); | ||||
|                             } | ||||
|                         }) | ||||
| @@ -78,9 +78,9 @@ public class BowSpleef extends StatelessGame { | ||||
|  | ||||
|         eventNode().addListener( | ||||
|                 EventListener | ||||
|                         .builder(ProjectileHitEvent.ProjectileBlockHitEvent.class) | ||||
|                         .builder(ProjectileCollideWithBlockEvent.class) | ||||
|                         .handler(projectileBlockHitEvent -> { | ||||
|                             CustomEntityProjectile projectile = projectileBlockHitEvent.getEntity(); | ||||
|                             Entity projectile = projectileBlockHitEvent.getEntity(); | ||||
|                             if(!projectile.getTag(ARROW_FIRST_HIT)) { | ||||
|                                 projectile.remove(); | ||||
|                                 return; | ||||
| @@ -108,7 +108,7 @@ public class BowSpleef extends StatelessGame { | ||||
|  | ||||
|         eventNode().addListener( | ||||
|                 EventListener | ||||
|                         .builder(ProjectileHitEvent.ProjectileEntityHitEvent.class) | ||||
|                         .builder(ProjectileCollideWithEntityEvent.class) | ||||
|                         .handler(projectileEntityHitEvent -> projectileEntityHitEvent.setCancelled(true)) | ||||
|                         .build() | ||||
|         ); | ||||
| @@ -135,9 +135,8 @@ public class BowSpleef extends StatelessGame { | ||||
|                     0, | ||||
|                     ItemStack | ||||
|                             .builder(Material.BOW) | ||||
|                             .displayName(TranslatedComponent.byId("bow").getAssembled(player)) | ||||
|                             .meta(builder -> builder.enchantment(Enchantment.FLAME, (short) 1).build()) | ||||
|                             .meta(builder -> builder.hideFlag(ItemHideFlag.HIDE_ENCHANTS)) | ||||
|                             .customName(TranslatedComponent.byId("bow").getAssembled(player)) | ||||
|                             .glowing(true) | ||||
|                             .build() | ||||
|             ); | ||||
|         }); | ||||
|   | ||||
| @@ -6,9 +6,9 @@ import eu.mhsl.minenet.minigames.util.BatchUtil; | ||||
| import eu.mhsl.minenet.minigames.instance.Dimension; | ||||
| import eu.mhsl.minenet.minigames.world.BlockPallet; | ||||
| import eu.mhsl.minenet.minigames.world.generator.terrain.CircularPlateTerrainGenerator; | ||||
| import io.github.bloepiloepi.pvp.config.AttackConfig; | ||||
| import io.github.bloepiloepi.pvp.config.DamageConfig; | ||||
| import io.github.bloepiloepi.pvp.config.PvPConfig; | ||||
| import io.github.togar2.pvp.config.AttackConfig; | ||||
| import io.github.togar2.pvp.config.DamageConfig; | ||||
| import io.github.togar2.pvp.config.PvPConfig; | ||||
| import net.minestom.server.coordinate.Pos; | ||||
| import net.minestom.server.event.player.PlayerMoveEvent; | ||||
| import net.minestom.server.instance.batch.AbsoluteBlockBatch; | ||||
| @@ -23,18 +23,18 @@ class Deathcube extends StatelessGame { | ||||
|     final int percentage; | ||||
|  | ||||
|     public Deathcube(int radius, int height, int percentage, int pvpEnabled) { | ||||
|         super(Dimension.THE_END.DIMENSION, "Deathcube", new FirstWinsScore()); | ||||
|         super(Dimension.THE_END.key, "Deathcube", new FirstWinsScore()); | ||||
|         this.radius = radius; | ||||
|         this.height = height + 49; | ||||
|         this.percentage = percentage; | ||||
|         this.setGenerator(new CircularPlateTerrainGenerator(radius+10).setPlateHeight(50)); | ||||
|  | ||||
|         if(pvpEnabled == 1) eventNode().addChild( | ||||
|                 PvPConfig.emptyBuilder() | ||||
|                         .damage(DamageConfig.legacyBuilder().fallDamage(false)) | ||||
|                         .attack(AttackConfig.legacyBuilder().attackCooldown(true)) | ||||
|                         .build().createNode() | ||||
|         ); | ||||
| //        if(pvpEnabled == 1) eventNode().addChild( // TODO update | ||||
| //                PvPConfig.emptyBuilder() | ||||
| //                        .damage(DamageConfig.LEGACY.fallDamage(false)) | ||||
| //                        .attack(AttackConfig.DEFAULT.attackCooldown(true)) | ||||
| //                        .build().createNode() | ||||
| //        ); | ||||
|         System.out.println(radius); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -26,7 +26,6 @@ import net.minestom.server.item.ItemStack; | ||||
| import net.minestom.server.item.Material; | ||||
| import net.minestom.server.network.packet.server.play.ParticlePacket; | ||||
| import net.minestom.server.particle.Particle; | ||||
| import net.minestom.server.particle.ParticleCreator; | ||||
| import net.minestom.server.sound.SoundEvent; | ||||
| import org.jetbrains.annotations.NotNull; | ||||
|  | ||||
| @@ -57,7 +56,7 @@ public class ElytraRace extends StatelessGame { | ||||
|     private final Map<Player, CheckPointData> playerCheckpoints = new HashMap<>(); | ||||
|  | ||||
|     public ElytraRace(int ringCount) { | ||||
|         super(Dimension.OVERWORLD.DIMENSION, "ElytraRace", new FirstWinsScore()); | ||||
|         super(Dimension.OVERWORLD.key, "ElytraRace", new FirstWinsScore()); | ||||
|  | ||||
|         this.ringCount = ringCount; | ||||
|  | ||||
| @@ -120,7 +119,7 @@ public class ElytraRace extends StatelessGame { | ||||
|         getPlayers().forEach(player -> { | ||||
|             player.getInventory().setChestplate(ItemStack.of(Material.ELYTRA)); | ||||
|             for(int i = 0; i < 3; i++) { | ||||
|                 player.getInventory().setItemStack(i, ItemStack.builder(boostMaterial).displayName(TranslatedComponent.byId("boost").getAssembled(player)).build()); | ||||
|                 player.getInventory().setItemStack(i, ItemStack.builder(boostMaterial).customName(TranslatedComponent.byId("boost").getAssembled(player)).build()); | ||||
|             } | ||||
|             addResetItemToPlayer(player); | ||||
|         }); | ||||
| @@ -144,7 +143,7 @@ public class ElytraRace extends StatelessGame { | ||||
|  | ||||
|         if(newPos.y() > gameHeight - 5) { | ||||
|             Point particlePoint = newPos.withY(gameHeight); | ||||
|             ParticlePacket particle = ParticleCreator.createParticlePacket( | ||||
|             ParticlePacket particle = new ParticlePacket( | ||||
|                     Particle.WAX_ON, | ||||
|                     particlePoint.blockX(), | ||||
|                     particlePoint.blockY(), | ||||
| @@ -152,6 +151,7 @@ public class ElytraRace extends StatelessGame { | ||||
|                     20, | ||||
|                     0, | ||||
|                     30, | ||||
|                     1f, | ||||
|                     Math.toIntExact((long) NumberUtil.map(newPos.y(), gameHeight - 5, gameHeight, 50, 500)) | ||||
|             ); | ||||
|             player.sendPacket(particle); | ||||
| @@ -173,7 +173,7 @@ public class ElytraRace extends StatelessGame { | ||||
|     } | ||||
|  | ||||
|     private void addResetItemToPlayer(Player p) { | ||||
|         p.getInventory().setItemStack(8, ItemStack.builder(resetMaterial).displayName(TranslatedComponent.byId("reset").getAssembled(p)).build()); | ||||
|         p.getInventory().setItemStack(8, ItemStack.builder(resetMaterial).customName(TranslatedComponent.byId("reset").getAssembled(p)).build()); | ||||
|     } | ||||
|  | ||||
|     private Point getRingPositionAtZ(int z) { | ||||
| @@ -189,7 +189,7 @@ public class ElytraRace extends StatelessGame { | ||||
|  | ||||
|         Point ringPos = getRingPositionAtZ(zPos); | ||||
|         GeneratorUtils.iterateArea( | ||||
|                 ringPos.sub(100, 0, 0).withY(getDimensionType().getMinY()), | ||||
|                 ringPos.sub(100, 0, 0).withY(0), // TODO 0 was before update getDimensionType().getMinY, might not work correctly | ||||
|                 ringPos.add(100, 0, 0).withY(gameHeight), | ||||
|                 point -> batch.setBlock(point, Block.BARRIER) | ||||
|         ); | ||||
|   | ||||
| @@ -33,7 +33,7 @@ class Minerun extends StatelessGame { | ||||
|     private final int afterFinishLine = 10; | ||||
|  | ||||
|     public Minerun(int width, int length, int minePercentage) { | ||||
|         super(Dimension.THE_END.DIMENSION, "Minerun", new FirstWinsScore()); | ||||
|         super(Dimension.THE_END.key, "Minerun", new FirstWinsScore()); | ||||
|         setGenerator(new SquarePlateTerrainGenerator(width, length + preRun + afterFinishLine).setPlateHeight(50).setGenerateBorders(true)); | ||||
|  | ||||
|         this.width = width; | ||||
|   | ||||
| @@ -26,7 +26,7 @@ public class Spleef extends StatelessGame { | ||||
|     final int totalElevation = 50; | ||||
|  | ||||
|     public Spleef(int radius, int stackCount) { | ||||
|         super(Dimension.OVERWORLD.DIMENSION, "Spleef", new LastWinsScore()); | ||||
|         super(Dimension.OVERWORLD.key, "Spleef", new LastWinsScore()); | ||||
|         getScore().setIgnoreLastPlayers(1); | ||||
|  | ||||
|         this.radius = radius; | ||||
| @@ -61,13 +61,7 @@ public class Spleef extends StatelessGame { | ||||
|             player.getInventory().addItemStack( | ||||
|                     ItemStack | ||||
|                             .builder(Material.DIAMOND_SHOVEL) | ||||
|                             .displayName(TranslatedComponent.byId("game_Spleef#shovelName").getAssembled(player)) | ||||
|                             .meta( | ||||
|                                 builder -> builder | ||||
|                                     .enchantment(Enchantment.EFFICIENCY, (short) 99) | ||||
|                                     .hideFlag(ItemHideFlag.HIDE_ENCHANTS) | ||||
|                                     .build() | ||||
|                             ) | ||||
|                             .customName(TranslatedComponent.byId("game_Spleef#shovelName").getAssembled(player)) | ||||
|                             .build() | ||||
|             ); | ||||
|             player.setHeldItemSlot((byte) 0); | ||||
|   | ||||
| @@ -5,8 +5,8 @@ import eu.mhsl.minenet.minigames.instance.game.stateless.StatelessGame; | ||||
| import eu.mhsl.minenet.minigames.score.LastWinsScore; | ||||
| import eu.mhsl.minenet.minigames.util.BatchUtil; | ||||
| import eu.mhsl.minenet.minigames.world.generator.terrain.CircularPlateTerrainGenerator; | ||||
| import io.github.bloepiloepi.pvp.config.*; | ||||
| import io.github.bloepiloepi.pvp.events.FinalAttackEvent; | ||||
| import io.github.togar2.pvp.config.PvPConfig; | ||||
| import io.github.togar2.pvp.events.FinalAttackEvent; | ||||
| import net.minestom.server.coordinate.Pos; | ||||
| import net.minestom.server.entity.Player; | ||||
| import net.minestom.server.event.player.PlayerMoveEvent; | ||||
| @@ -18,14 +18,14 @@ import java.util.concurrent.CompletableFuture; | ||||
|  | ||||
| public class Stickfight extends StatelessGame { | ||||
|     public Stickfight() { | ||||
|         super(Dimension.OVERWORLD.DIMENSION, "Stickfight", new LastWinsScore()); | ||||
|         super(Dimension.OVERWORLD.key, "Stickfight", new LastWinsScore()); | ||||
|  | ||||
|         eventNode().addChild( | ||||
|                 PvPConfig.emptyBuilder() | ||||
|                         .damage(DamageConfig.legacyBuilder().fallDamage(false)) | ||||
|                         .attack(AttackConfig.legacyBuilder().attackCooldown(true)) | ||||
|                         .build().createNode() | ||||
|         ); | ||||
| //        eventNode().addChild( // TODO update | ||||
| //                PvPConfig.emptyBuilder() | ||||
| //                        .damage(DamageConfig.legacyBuilder().fallDamage(false)) | ||||
| //                        .attack(AttackConfig.legacyBuilder().attackCooldown(true)) | ||||
| //                        .build().createNode() | ||||
| //        ); | ||||
|  | ||||
|         eventNode().addListener(FinalAttackEvent.class, finalAttackEvent -> { | ||||
|             finalAttackEvent.setBaseDamage(0); | ||||
|   | ||||
| @@ -27,7 +27,7 @@ public class TntRun extends StatelessGame { | ||||
|     final int radius; | ||||
|     final int stackCount; | ||||
|     public TntRun(int radius, int stackCount) { | ||||
|         super(Dimension.OVERWORLD.DIMENSION, "tntRun", new LastWinsScore()); | ||||
|         super(Dimension.OVERWORLD.key, "tntRun", new LastWinsScore()); | ||||
|         this.radius = radius; | ||||
|         this.stackCount = stackCount; | ||||
|         setGenerator(new CircularPlateTerrainGenerator(radius)); | ||||
| @@ -74,7 +74,7 @@ public class TntRun extends StatelessGame { | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, TaskSchedule.millis(500), TaskSchedule.stop(), ExecutionType.ASYNC); | ||||
|             }, TaskSchedule.millis(500), TaskSchedule.stop(), ExecutionType.TICK_END); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -10,7 +10,7 @@ import net.minestom.server.item.Material; | ||||
|  | ||||
| public class Towerdefense extends StatelessGame { | ||||
|     public Towerdefense() { | ||||
|         super(Dimension.NETHER.DIMENSION, "Towerdefense", new NoScore()); | ||||
|         super(Dimension.NETHER.key, "Towerdefense", new NoScore()); | ||||
|  | ||||
|         setGenerator(new MazeGenerator()); | ||||
|     } | ||||
|   | ||||
| @@ -37,7 +37,7 @@ class TrafficLightRace extends StatelessGame { | ||||
|     private final List<Pos> trafficLights = new ArrayList<>(); | ||||
|  | ||||
|     public TrafficLightRace(int width, int length) { | ||||
|         super(Dimension.THE_END.DIMENSION, "Ampelrennen", new FirstWinsScore()); | ||||
|         super(Dimension.THE_END.key, "Ampelrennen", new FirstWinsScore()); | ||||
|         this.width = width; | ||||
|         this.length = length; | ||||
|  | ||||
| @@ -150,7 +150,7 @@ class TrafficLightRace extends StatelessGame { | ||||
|             BatchUtil.loadAndApplyBatch(changeLightsBatch, this, () -> {}); | ||||
|  | ||||
|             return phase.taskScheduleRandomDuration(); | ||||
|         }, ExecutionType.SYNC); | ||||
|         }, ExecutionType.TICK_END); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|   | ||||
| @@ -9,7 +9,7 @@ import eu.mhsl.minenet.minigames.instance.Dimension; | ||||
| import net.minestom.server.MinecraftServer; | ||||
| import net.minestom.server.coordinate.Pos; | ||||
| import net.minestom.server.event.player.*; | ||||
| import net.minestom.server.instance.AnvilLoader; | ||||
| import net.minestom.server.instance.anvil.AnvilLoader; | ||||
|  | ||||
| import java.nio.file.Path; | ||||
|  | ||||
| @@ -30,7 +30,7 @@ public class Hub extends MineNetInstance implements Spawnable { | ||||
|     } | ||||
|  | ||||
|     private Hub() { | ||||
|         super(Dimension.THE_END.DIMENSION); | ||||
|         super(Dimension.THE_END.key); | ||||
|         setChunkLoader(new AnvilLoader(Path.of("maps/hub"))); | ||||
|  | ||||
|         setTime(18000); | ||||
|   | ||||
| @@ -5,7 +5,6 @@ import eu.mhsl.minenet.minigames.message.component.TranslatedComponent; | ||||
| import eu.mhsl.minenet.minigames.shared.inventory.InteractableInventory; | ||||
| import net.minestom.server.entity.Player; | ||||
| import net.minestom.server.inventory.InventoryType; | ||||
| import net.minestom.server.item.ItemHideFlag; | ||||
| import net.minestom.server.item.ItemStack; | ||||
| import net.minestom.server.item.Material; | ||||
|  | ||||
| @@ -16,9 +15,8 @@ public class HubInventory extends InteractableInventory { | ||||
|         setClickableItem( | ||||
|                 ItemStack | ||||
|                         .builder(Material.WRITABLE_BOOK) | ||||
|                         .displayName(TranslatedComponent.assemble("hub#create", p)) | ||||
|                         .customName(TranslatedComponent.assemble("hub#create", p)) | ||||
|                         .lore(TranslatedComponent.assemble("hub#create_description", p)) | ||||
|                         .meta(metaBuilder -> metaBuilder.hideFlag(ItemHideFlag.HIDE_ATTRIBUTES)) | ||||
|                         .build(), | ||||
|                 12, | ||||
|                 itemClick -> Room.createRoom(itemClick.getPlayer()), | ||||
| @@ -28,7 +26,7 @@ public class HubInventory extends InteractableInventory { | ||||
|         setClickableItem( | ||||
|                 ItemStack | ||||
|                         .builder(Material.KNOWLEDGE_BOOK) | ||||
|                         .displayName(TranslatedComponent.assemble("hub#join", p)) | ||||
|                         .customName(TranslatedComponent.assemble("hub#join", p)) | ||||
|                         .lore(TranslatedComponent.assemble("hub#join_description", p)) | ||||
|                         .build(), | ||||
|                 14, | ||||
|   | ||||
| @@ -29,7 +29,7 @@ public class JoinInventory extends InteractableInventory { | ||||
|  | ||||
|         setClickableItem( | ||||
|                 ItemStack.builder(Material.GREEN_STAINED_GLASS_PANE) | ||||
|                         .displayName(Component.text(prefix)) | ||||
|                         .customName(Component.text(prefix)) | ||||
|                         .build(), | ||||
|                 0, | ||||
|                 itemClick -> {} | ||||
| @@ -51,7 +51,7 @@ public class JoinInventory extends InteractableInventory { | ||||
|  | ||||
|         typedText = formatInput(typedText); | ||||
|  | ||||
|         Optional<Room> target = Room.getRoom(MinecraftServer.getConnectionManager().findPlayer(typedText)); | ||||
|         Optional<Room> target = Room.getRoom(MinecraftServer.getConnectionManager().findOnlinePlayer(typedText)); | ||||
|         if(target.isPresent()) | ||||
|             Room.setRoom(player, target.get()); | ||||
|         else | ||||
|   | ||||
| @@ -17,7 +17,7 @@ import net.minestom.server.entity.GameMode; | ||||
| import net.minestom.server.entity.Player; | ||||
| import net.minestom.server.event.player.PlayerBlockBreakEvent; | ||||
| import net.minestom.server.event.player.PlayerDisconnectEvent; | ||||
| import net.minestom.server.instance.AnvilLoader; | ||||
| import net.minestom.server.instance.anvil.AnvilLoader; | ||||
|  | ||||
| import java.util.*; | ||||
| import java.util.logging.Logger; | ||||
| @@ -85,14 +85,14 @@ public class Room extends MineNetInstance implements Spawnable { | ||||
|     private GameSelector gameSelector; | ||||
|     private final Tournament tournament = new Tournament(); | ||||
|     private Room(Player owner) { | ||||
|         super(Dimension.THE_END.DIMENSION); | ||||
|         super(Dimension.THE_END.key); | ||||
|         this.apiDriven = false; | ||||
|         construct(); | ||||
|         setOwner(owner); | ||||
|     } | ||||
|  | ||||
|     protected Room() { | ||||
|         super(Dimension.THE_END.DIMENSION); | ||||
|         super(Dimension.THE_END.key); | ||||
|         this.apiDriven = true; | ||||
|         construct(); | ||||
|     } | ||||
|   | ||||
| @@ -10,7 +10,6 @@ import eu.mhsl.minenet.minigames.shared.inventory.InteractableInventory; | ||||
| import eu.mhsl.minenet.minigames.util.InventoryItemAlignment; | ||||
| import net.minestom.server.entity.Player; | ||||
| import net.minestom.server.inventory.InventoryType; | ||||
| import net.minestom.server.item.ItemHideFlag; | ||||
| import net.minestom.server.item.ItemStack; | ||||
| import net.minestom.server.item.Material; | ||||
|  | ||||
| @@ -29,7 +28,7 @@ public class MinigameSelectInventory extends InteractableInventory { | ||||
|         for (GameType type : GameType.values()) { | ||||
|             setClickableItem( | ||||
|                     ItemStack.builder(type.getIcon()) | ||||
|                             .displayName(type.getTitle().getAssembled(p)) | ||||
|                             .customName(type.getTitle().getAssembled(p)) | ||||
|                             .lore(type.getDescription().addWrap().getWrappedAssembled(p)) | ||||
|                             .build(), | ||||
|                     itemAlignment.next().get(), | ||||
| @@ -58,9 +57,8 @@ public class MinigameSelectInventory extends InteractableInventory { | ||||
|  | ||||
|             setClickableItem( | ||||
|                     ItemStack.builder(gameFactory.symbol()) | ||||
|                             .displayName(gameFactory.name().getAssembled(p)) | ||||
|                             .customName(gameFactory.name().getAssembled(p)) | ||||
|                             .lore(gameFactory.description().addWrap().getWrappedAssembled(p)) | ||||
|                             .meta(metaBuilder -> metaBuilder.hideFlag(ItemHideFlag.HIDE_ATTRIBUTES)) | ||||
|                             .build(), | ||||
|                     offset + itemAlignment.next().get(), | ||||
|                     itemClick -> itemClick.getPlayer().openInventory(new GameConfigurationInventory(room, itemClick.getPlayer(), gameFactory)) | ||||
|   | ||||
| @@ -10,7 +10,7 @@ import net.minestom.server.instance.block.Block; | ||||
|  | ||||
| public class Transfer extends MineNetInstance implements Spawnable { | ||||
|     public Transfer() { | ||||
|         super(Dimension.THE_END.DIMENSION); | ||||
|         super(Dimension.THE_END.key); | ||||
|         eventNode().addListener(PlayerMoveEvent.class, CommonEventHandles::cancel); | ||||
|         setBlock(0, 0, 0, Block.BARRIER); | ||||
|     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user