aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/re/jag/parquet/commands/CameraMode.java
diff options
context:
space:
mode:
authorGravatar Jonas Gunz <himself@jonasgunz.de> 2020-04-14 13:47:15 +0200
committerGravatar Jonas Gunz <himself@jonasgunz.de> 2020-04-14 13:47:15 +0200
commit94db7276abeae9d6d7b0adc32747d16fb9e1f8f2 (patch)
treeefd447b36ed3c5e811ca1b42c1fc4c13c9008ce8 /src/main/java/re/jag/parquet/commands/CameraMode.java
parentc532050d4d29cc55559fadd591f3ffad47246572 (diff)
downloadparquet-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.java58
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;
}
}