package com.zivilon.cinder_loe.command; import com.zivilon.cinder_loe.carriage.CarriageDestination; import com.zivilon.cinder_loe.carriage.CarriageDestinationsData; import com.zivilon.cinder_loe.network.PacketOpenCarriageGui; import lotr.common.network.LOTRPacketHandler; import net.minecraft.command.CommandBase; import net.minecraft.command.CommandException; import net.minecraft.command.ICommandSender; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.world.World; import java.util.ArrayList; import java.util.List; public class CommandOpenCarriageMenu extends CommandBase { @Override public String getCommandName() { return "open_carriage_menu"; } @Override public String getCommandUsage(ICommandSender sender) { return "/open_carriage_menu"; } @Override public void processCommand(ICommandSender sender, String[] args) { if (!(sender instanceof EntityPlayerMP)) { throw new CommandException("Must be run by a player."); } EntityPlayerMP player = (EntityPlayerMP) sender; World world = player.worldObj; CarriageDestinationsData data = CarriageDestinationsData.get(world); List nearest = data.getNearestFour(player.posX, player.posZ); List names = new ArrayList<>(); List costs = new ArrayList<>(); for (CarriageDestination dest : nearest) { double dist = Math.sqrt(Math.pow(dest.x - player.posX, 2) + Math.pow(dest.z - player.posZ, 2)); int cost = Math.max(1, (int)(dist / 50)); names.add(dest.name); costs.add(cost); } LOTRPacketHandler.networkWrapper.sendTo(new PacketOpenCarriageGui(names, costs), player); } }