diff options
author | Jonas Gunz <himself@jonasgunz.de> | 2020-04-14 13:47:15 +0200 |
---|---|---|
committer | Jonas Gunz <himself@jonasgunz.de> | 2020-04-14 13:47:15 +0200 |
commit | 94db7276abeae9d6d7b0adc32747d16fb9e1f8f2 (patch) | |
tree | efd447b36ed3c5e811ca1b42c1fc4c13c9008ce8 /src/main/java/re/jag/parquet/commands/CameraMode.java | |
parent | c532050d4d29cc55559fadd591f3ffad47246572 (diff) | |
download | parquet-94db7276abeae9d6d7b0adc32747d16fb9e1f8f2.tar.gz |
Fixes in CamerMode
Diffstat (limited to 'src/main/java/re/jag/parquet/commands/CameraMode.java')
-rw-r--r-- | src/main/java/re/jag/parquet/commands/CameraMode.java | 58 |
1 files changed, 44 insertions, 14 deletions
diff --git a/src/main/java/re/jag/parquet/commands/CameraMode.java b/src/main/java/re/jag/parquet/commands/CameraMode.java index f65e1e7..0b74f1e 100644 --- a/src/main/java/re/jag/parquet/commands/CameraMode.java +++ b/src/main/java/re/jag/parquet/commands/CameraMode.java @@ -15,47 +15,77 @@ import net.minecraft.server.command.ServerCommandSource; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.text.LiteralText; import net.minecraft.world.GameMode; +import re.jag.parquet.interfaces.CameraModeData; public class CameraMode { public static void register(CommandDispatcher<ServerCommandSource> dispatcher) { - LiteralArgumentBuilder<ServerCommandSource> camermode = literal("c"). + LiteralArgumentBuilder<ServerCommandSource> camermode = literal("c"). executes((c) -> camera( c.getSource(), c.getSource().getPlayer())). then(argument("player", EntityArgumentType.player()). executes( (c) -> camera(c.getSource(), EntityArgumentType.getPlayer(c, "player")))); - LiteralArgumentBuilder<ServerCommandSource> survivalmode = literal("s"). + LiteralArgumentBuilder<ServerCommandSource> survivalmode = literal("s"). executes((c) -> survival( c.getSource(), c.getSource().getPlayer())). then(argument("player", EntityArgumentType.player()). executes( (c) -> survival(c.getSource(), EntityArgumentType.getPlayer(c, "player")))); + LiteralArgumentBuilder<ServerCommandSource> defaultmode = literal("d"). + executes((c) -> defmode( c.getSource(), c.getSource().getPlayer())). + then(argument("player", EntityArgumentType.player()). + executes( (c) -> defmode(c.getSource(), EntityArgumentType.getPlayer(c, "player")))); - dispatcher.register(camermode); - dispatcher.register(survivalmode); + dispatcher.register(camermode); + dispatcher.register(survivalmode); + dispatcher.register(defaultmode); + } + + private static void add_status_effects(ServerPlayerEntity player) { + + player.addStatusEffect(new StatusEffectInstance(StatusEffects.NIGHT_VISION, 999999, 0, false, false)); + player.addStatusEffect(new StatusEffectInstance(StatusEffects.CONDUIT_POWER, 999999, 0, false, false)); + } + + private static void remove_status_effects(ServerPlayerEntity player) { + player.networkHandler.sendPacket(new RemoveEntityStatusEffectS2CPacket(player.getEntityId(), StatusEffects.NIGHT_VISION)); + player.removeStatusEffect(StatusEffects.NIGHT_VISION); + player.networkHandler.sendPacket(new RemoveEntityStatusEffectS2CPacket(player.getEntityId(), StatusEffects.CONDUIT_POWER)); + player.removeStatusEffect(StatusEffects.CONDUIT_POWER); } private static int camera(ServerCommandSource source, ServerPlayerEntity player) { if (! ((CameraModeData)player).saveCameraPosition() ) { - source.sendFeedback(new LiteralText("Gamemode is already camera"), false); - return 0; + source.sendFeedback(new LiteralText("Reset location already exists"), false); + } else { + add_status_effects(player); } player.setGameMode(GameMode.SPECTATOR); player.addVelocity(0,0.1,0); player.networkHandler.sendPacket(new EntityVelocityUpdateS2CPacket(player)); - player.addStatusEffect(new StatusEffectInstance(StatusEffects.NIGHT_VISION, 999999, 0, false, false)); - player.addStatusEffect(new StatusEffectInstance(StatusEffects.CONDUIT_POWER, 999999, 0, false, false)); + return 1; } private static int survival(ServerCommandSource source, ServerPlayerEntity player) { if (! ((CameraModeData)player).restoreCameraPosition() ) { - source.sendFeedback(new LiteralText("Gamemode is already survival"), false); - return 0; + source.sendFeedback(new LiteralText("No reset location stored"), false); + } else { + remove_status_effects(player); } player.setGameMode(GameMode.SURVIVAL); - player.networkHandler.sendPacket(new RemoveEntityStatusEffectS2CPacket(player.getEntityId(), StatusEffects.NIGHT_VISION)); - player.removeStatusEffect(StatusEffects.NIGHT_VISION); - player.networkHandler.sendPacket(new RemoveEntityStatusEffectS2CPacket(player.getEntityId(), StatusEffects.CONDUIT_POWER)); - player.removeStatusEffect(StatusEffects.CONDUIT_POWER); + + return 1; + } + + //Reset to server default gamemode + private static int defmode(ServerCommandSource source, ServerPlayerEntity player) { + if (! ((CameraModeData)player).restoreCameraPosition() ) { + source.sendFeedback(new LiteralText("No reset location stored"), false); + } else { + remove_status_effects(player); + } + + player.setGameMode( player.getServer().getDefaultGameMode() ); + return 1; } } |