So I'm trying to create a lighter, so On and Off. Here is my code
package icelock.iceblocks.item.custom;
import com.mojang.brigadier.ParseResults;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.components.ChatComponent;
import net.minecraft.client.gui.screens.debug.GameModeSwitcherScreen;
import net.minecraft.client.sounds.SoundEngine;
import net.minecraft.client.telemetry.TelemetryProperty;
import net.minecraft.commands.*;
import net.minecraft.commands.arguments.GameModeArgument;
import net.minecraft.core.Direction;
import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceKey;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.commands.GameModeCommand;
import net.minecraft.server.commands.OpCommand;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.server.level.ServerPlayerGameMode;
import net.minecraft.sounds.SoundEvent;
import net.minecraft.sounds.SoundEvents;
import net.minecraft.sounds.SoundSource;
import net.minecraft.server.*;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.entity.player.Abilities;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.context.UseOnContext;
import net.minecraft.world.level.GameRules;
import net.minecraft.world.level.GameType;
import net.minecraft.world.level.block.SoundType;
import net.minecraft.world.level.storage.LevelResource;
import net.minecraft.world.phys.Vec3;
import net.minecraftforge.client.event.CustomizeGuiOverlayEvent;
import net.minecraftforge.common.ForgeConfig;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.server.console.TerminalHandler;
import net.minecraft.commands.CommandSourceStack;
import java.nio.file.Path;
public class FlashLight extends Item {
public FlashLight(Properties pProperties) {
super(pProperties);
}
boolean FlashSwitch = false;
Vec3 pos1 = null;
Vec3 pos2 = null;
Direction Dir = null;
boolean ON = false;
@Override
public InteractionResult useOn(UseOnContext pContext) {
if (!pContext.getLevel().isClientSide) {
Boolean ShiftDown = pContext.isSecondaryUseActive();
Player player = pContext.getPlayer();
MinecraftServer server = pContext.getPlayer().getServer();
if (FlashSwitch) {
pos1 = pContext.getPlayer().getEyePosition();
FlashSwitch = !FlashSwitch;
player.displayClientMessage(Component.literal("§cOff"),true);
ON = false;
} else if (!FlashSwitch) {
FlashSwitch = !FlashSwitch;
player.displayClientMessage(Component.literal("§eOn"),true);
ON = true;
while (ON) {
Dir = pContext.getPlayer().getDirection();
if (Dir.equals(Direction.NORTH)){
player.displayClientMessage(Component.literal("§eNORTH"),true);
} else if (Dir.equals(Direction.EAST)){
player.displayClientMessage(Component.literal("§eEAST"),true);
} else if (Dir.equals(Direction.SOUTH)){
player.displayClientMessage(Component.literal("§eSOUTH"),true);
} else if (Dir.equals(Direction.WEST)){
player.displayClientMessage(Component.literal("§eWEST"),true);
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
}
}
return InteractionResult.SUCCESS;
}
}
This barely works, the switch between on and off doesnt work, and when i turn directions it doesnt display the direction im facing, please help ASAP.