diff --git a/src/main/java/eu/midnightdust/celestria/Celestria.java b/src/main/java/eu/midnightdust/celestria/Celestria.java index 77ca21f..b5bd5aa 100755 --- a/src/main/java/eu/midnightdust/celestria/Celestria.java +++ b/src/main/java/eu/midnightdust/celestria/Celestria.java @@ -49,18 +49,18 @@ public class Celestria implements ModInitializer { CommandRegistrationCallback.EVENT.register((dispatcher, dedicated, registrationEnvironment) -> dispatcher.register(finalized)); ServerTickEvents.END_WORLD_TICK.register(world -> { if (shootingStarCooldown > 0) --shootingStarCooldown; - if (world.getPlayers().size() > prevPlayerAmount) { + if (world.getPlayers().size() > prevPlayerAmount && CelestriaConfig.enableShootingStars) { world.getPlayers().forEach(player -> ServerPlayNetworking.send(player, WELCOME_PACKET, new PacketByteBuf(Unpooled.buffer()))); prevPlayerAmount = world.getPlayers().size(); } - if (world.isNight() && world.getMoonPhase() == 0) { + if (world.isNight() && CelestriaConfig.enableInsomnia && world.getMoonPhase() == 0) { for (ServerPlayerEntity player : world.getPlayers()) { if (world.random.nextInt(CelestriaConfig.insomniaChance) == 0) { player.addStatusEffect(new StatusEffectInstance(INSOMNIA, CelestriaConfig.insomniaDuration, 0, true, false, true)); } } } - if (world.isNight() && Celestria.shootingStarCooldown <= 0 && world.random.nextInt(CelestriaConfig.shootingStarChance) == 0) { + if (world.isNight() && CelestriaConfig.enableShootingStars && Celestria.shootingStarCooldown <= 0 && world.random.nextInt(CelestriaConfig.shootingStarChance) == 0) { int x = world.random.nextBetween(100, 150); int y = world.random.nextInt(360); int type = world.random.nextInt(3); diff --git a/src/main/java/eu/midnightdust/celestria/CelestriaClient.java b/src/main/java/eu/midnightdust/celestria/CelestriaClient.java index 1cdb015..327a23a 100755 --- a/src/main/java/eu/midnightdust/celestria/CelestriaClient.java +++ b/src/main/java/eu/midnightdust/celestria/CelestriaClient.java @@ -40,7 +40,7 @@ public class CelestriaClient implements ClientModInitializer { (client, handler, attachedData, packetSender) -> client.execute(() -> CelestriaClient.clientOnlyMode = false)); ClientTickEvents.END_CLIENT_TICK.register(client -> { if (shootingStarProgress > 0) --shootingStarProgress; - if (CelestriaClient.clientOnlyMode && client.world != null) { + if (CelestriaClient.clientOnlyMode && CelestriaConfig.enableShootingStars && client.world != null) { if (Celestria.shootingStarCooldown > 0) --Celestria.shootingStarCooldown; if (client.world.isNight() && Celestria.shootingStarCooldown <= 0 && client.world.random.nextInt(CelestriaConfig.shootingStarChance) == 0) { CelestriaClient.shootingStarX = client.world.random.nextBetween(100, 150); diff --git a/src/main/java/eu/midnightdust/celestria/config/CelestriaConfig.java b/src/main/java/eu/midnightdust/celestria/config/CelestriaConfig.java index ccbed38..d300b98 100755 --- a/src/main/java/eu/midnightdust/celestria/config/CelestriaConfig.java +++ b/src/main/java/eu/midnightdust/celestria/config/CelestriaConfig.java @@ -7,11 +7,13 @@ import java.util.List; public class CelestriaConfig extends MidnightConfig { @Entry public static boolean sendChatMessages = true; - @Entry public static int shootingStarChance = 10000; + @Entry public static boolean enableShootingStars = true; + @Entry public static int shootingStarChance = 20000; @Entry public static int shootingStarCooldownLength = 1000; @Entry public static int shootingStarLuckDuration = 1000; + @Entry public static List shootingStarMessages = Lists.newArrayList("celestria.shootingStar.1", "celestria.shootingStar.2", "celestria.shootingStar.3"); + @Entry public static boolean enableInsomnia = true; @Entry public static int insomniaChance = 30000; @Entry public static int insomniaDuration = 1000; - @Entry public static List shootingStarMessages = Lists.newArrayList("celestria.shootingStar.1", "celestria.shootingStar.2", "celestria.shootingStar.3"); @Entry public static List insomniaMessages = Lists.newArrayList("celestria.insomnia.1", "celestria.insomnia.2"); } diff --git a/src/main/java/eu/midnightdust/celestria/mixin/MixinBedBlock.java b/src/main/java/eu/midnightdust/celestria/mixin/MixinBedBlock.java index 3acdf2a..516acc0 100644 --- a/src/main/java/eu/midnightdust/celestria/mixin/MixinBedBlock.java +++ b/src/main/java/eu/midnightdust/celestria/mixin/MixinBedBlock.java @@ -23,7 +23,7 @@ public abstract class MixinBedBlock { public void celestria$onBedUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit, CallbackInfoReturnable cir) { if (!world.isClient() && player instanceof ServerPlayerEntity serverPlayer && player.hasStatusEffect(Celestria.INSOMNIA)) { if (CelestriaConfig.sendChatMessages) serverPlayer.sendMessageToClient(Text.literal("§f§l[§7§lC§8§le§7§ll§f§le§7§ls§8§lt§7§lr§f§li§7§la§8§l] ").append(Text.translatable(CelestriaConfig.insomniaMessages.get(world.random.nextInt(CelestriaConfig.insomniaMessages.size())))),false); - cir.setReturnValue(ActionResult.FAIL); + cir.setReturnValue(ActionResult.CONSUME); } } } diff --git a/src/main/java/eu/midnightdust/celestria/render/ShootingStarRenderer.java b/src/main/java/eu/midnightdust/celestria/render/ShootingStarRenderer.java index 3fcff42..b287ba0 100644 --- a/src/main/java/eu/midnightdust/celestria/render/ShootingStarRenderer.java +++ b/src/main/java/eu/midnightdust/celestria/render/ShootingStarRenderer.java @@ -3,6 +3,7 @@ package eu.midnightdust.celestria.render; import com.mojang.blaze3d.systems.RenderSystem; import eu.midnightdust.celestria.Celestria; import eu.midnightdust.celestria.CelestriaClient; +import eu.midnightdust.celestria.config.CelestriaConfig; import eu.midnightdust.lib.util.MidnightMathUtil; import net.minecraft.client.render.*; import net.minecraft.client.util.math.MatrixStack; @@ -13,7 +14,7 @@ import net.minecraft.util.math.Vec3f; public class ShootingStarRenderer { public void renderShootingStar(ClientWorld world, MatrixStack matrices) { - if (world != null && CelestriaClient.shootingStarProgress > 0) { + if (world != null && CelestriaConfig.enableShootingStars && CelestriaClient.shootingStarProgress > 0) { world.getProfiler().swap("shooting_star"); matrices.push(); matrices.multiply(Vec3f.POSITIVE_Y.getDegreesQuaternion(MidnightMathUtil.isEven(CelestriaClient.shootingStarType) ? CelestriaClient.shootingStarY + CelestriaClient.shootingStarProgress : CelestriaClient.shootingStarY - CelestriaClient.shootingStarProgress)); diff --git a/src/main/resources/assets/celestria/lang/de_de.json b/src/main/resources/assets/celestria/lang/de_de.json index fd359ad..44bd480 100755 --- a/src/main/resources/assets/celestria/lang/de_de.json +++ b/src/main/resources/assets/celestria/lang/de_de.json @@ -1,10 +1,12 @@ { "celestria.midnightconfig.title": "Celestria Konfiguration", "celestria.midnightconfig.sendChatMessages": "Sende Chat Nachrichten bei Events", + "celestria.midnightconfig.enableShootingStars": "Aktiviere Sternschnuppen", "celestria.midnightconfig.shootingStarChance": "Sternschnuppen-Wahrscheinlichkeit", "celestria.midnightconfig.shootingStarCooldownLength": "Sternschnuppen Cooldown Länge", "celestria.midnightconfig.shootingStarLuckDuration": "Sternschnuppen Glück Effektlänge", "celestria.midnightconfig.shootingStarMessages": "Sternschnuppen-Nachrichten", + "celestria.midnightconfig.enableInsomnia": "Aktiviere Schlaflosigkeit", "celestria.midnightconfig.insomniaChance": "Schlaflosigkeits-Wahrscheinlichkeit", "celestria.midnightconfig.insomniaMessages": "Schlaflosigkeits-Nachrichten", "celestria.midnightconfig.insomniaDuration": "Schlaflosigkeit Effektlänge", @@ -13,5 +15,5 @@ "celestria.shootingStar.3": "§2♪ Can we pretend that airplanes in the night sky are like shooting stars... ♫\n§3Oh warte, da ist ja eine echte Sternschnuppe!", "celestria.insomnia.1": "§cDu hast Angst vor dem Vollmond, also kannst du einfach nicht einschlafen...", "celestria.insomnia.2": "§3Ouuwwwh... Du hörst seltsame Geräusche und kannst deine Augen nicht schließen", - "celestria.mob_effect.insomnia": "Schlaflosigkeit" + "effect.celestria.insomnia": "Schlaflosigkeit" } \ No newline at end of file diff --git a/src/main/resources/assets/celestria/lang/en_us.json b/src/main/resources/assets/celestria/lang/en_us.json index 9ca14ee..df1cea7 100755 --- a/src/main/resources/assets/celestria/lang/en_us.json +++ b/src/main/resources/assets/celestria/lang/en_us.json @@ -1,10 +1,12 @@ { "celestria.midnightconfig.title": "Celestria Config", "celestria.midnightconfig.sendChatMessages": "Send Chat Messages on Events", + "celestria.midnightconfig.enableShootingStars": "Enable Shooting Stars", "celestria.midnightconfig.shootingStarChance": "Shooting Star Chance", "celestria.midnightconfig.shootingStarCooldownLength": "Shooting Star Cooldown Length", "celestria.midnightconfig.shootingStarLuckDuration": "Shooting Star Luck Duration", "celestria.midnightconfig.shootingStarMessages": "Shooting Star Messages", + "celestria.midnightconfig.enableInsomnia": "Enable Insomnia", "celestria.midnightconfig.insomniaChance": "Insomnia Chance", "celestria.midnightconfig.insomniaMessages": "Insomnia Messages", "celestria.midnightconfig.insomniaDuration": "Insomnia Effect Duration", @@ -13,5 +15,5 @@ "celestria.shootingStar.3": "§2♪ Can we pretend that airplanes in the night sky are like shooting stars... ♫\n§3Oh wait, there's a real one!", "celestria.insomnia.1": "§cYou're afraid of the full moon, so you just can't find no rest...", "celestria.insomnia.2": "§3Ouuwwwh... You hear strange noises from afar and can't close your eyes", - "celestria.mob_effect.insomnia": "Insomnia" + "effect.celestria.insomnia": "Insomnia" } \ No newline at end of file