mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
89 lines
4.0 KiB
Java
89 lines
4.0 KiB
Java
package com.hbm.commands;
|
|
|
|
import com.hbm.items.ISatChip;
|
|
import com.hbm.items.ModItems;
|
|
import com.hbm.saveddata.SatelliteSavedData;
|
|
import com.hbm.saveddata.satellites.Satellite;
|
|
import net.minecraft.command.CommandBase;
|
|
import net.minecraft.command.ICommandSender;
|
|
import net.minecraft.entity.player.EntityPlayer;
|
|
import net.minecraft.util.ChatComponentTranslation;
|
|
import net.minecraft.util.ChatStyle;
|
|
import net.minecraft.util.EnumChatFormatting;
|
|
|
|
import java.util.Collections;
|
|
import java.util.List;
|
|
import java.util.Locale;
|
|
import java.util.stream.Collectors;
|
|
|
|
public class CommandSatellites extends CommandBase {
|
|
@Override
|
|
public String getCommandName() {
|
|
return "ntmsatellites";
|
|
}
|
|
|
|
@Override
|
|
public String getCommandUsage(ICommandSender iCommandSender) {
|
|
return String.format(Locale.US,
|
|
"%s/%s orbit %s- Launch the held satellite\n" +
|
|
"%s/%s descend <frequency> %s- Deletes satellite by frequency.",
|
|
EnumChatFormatting.GREEN, getCommandName(), EnumChatFormatting.LIGHT_PURPLE,
|
|
EnumChatFormatting.GREEN, getCommandName(), EnumChatFormatting.LIGHT_PURPLE
|
|
);
|
|
}
|
|
|
|
@Override
|
|
public void processCommand(ICommandSender sender, String[] args) {
|
|
if(!(sender instanceof EntityPlayer)) {
|
|
sender.addChatMessage(new ChatComponentTranslation( "commands.satellite.should_be_run_as_player").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED)));
|
|
return;
|
|
}
|
|
switch (args[0]) {
|
|
case "orbit":
|
|
EntityPlayer player = getCommandSenderAsPlayer(sender);
|
|
if(player.getHeldItem().getItem() instanceof ISatChip && player.getHeldItem().getItem() != ModItems.sat_chip) {
|
|
Satellite.orbit(
|
|
player.worldObj,
|
|
Satellite.getIDFromItem(player.getHeldItem().getItem()),
|
|
ISatChip.getFreqS(player.getHeldItem()),
|
|
player.posX, player.posY, player.posZ
|
|
);
|
|
player.getHeldItem().stackSize -= 1;
|
|
sender.addChatMessage(new ChatComponentTranslation("commands.satellite.satellite_orbited").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GREEN)));
|
|
} else {
|
|
sender.addChatMessage(new ChatComponentTranslation("commands.satellite.not_a_satellite").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED)));
|
|
}
|
|
break;
|
|
case "descend":
|
|
int freq = parseInt(sender, args[1]);
|
|
SatelliteSavedData data = SatelliteSavedData.getData(sender.getEntityWorld());
|
|
if(data.sats.containsKey(freq)) {
|
|
data.sats.remove(freq);
|
|
data.markDirty();
|
|
sender.addChatMessage(new ChatComponentTranslation( "commands.satellite.satellite_descended").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.GREEN)));
|
|
} else {
|
|
sender.addChatMessage(new ChatComponentTranslation( "commands.satellite.no_satellite").setChatStyle(new ChatStyle().setColor(EnumChatFormatting.RED)));
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
@SuppressWarnings("rawtypes")
|
|
@Override
|
|
public List addTabCompletionOptions(ICommandSender sender, String[] args) {
|
|
if(!(sender instanceof EntityPlayer)) {
|
|
return Collections.emptyList();
|
|
}
|
|
if(args.length < 1) {
|
|
return Collections.emptyList();
|
|
}
|
|
if(args.length == 1) {
|
|
return getListOfStringsMatchingLastWord(args, "orbit", "descend");
|
|
}
|
|
if (args[0].equals("descend")) {
|
|
return getListOfStringsFromIterableMatchingLastWord(args, SatelliteSavedData.getData(sender.getEntityWorld()).sats.keySet().stream().map(String::valueOf).collect(Collectors.toList()));
|
|
}
|
|
return Collections.emptyList();
|
|
}
|
|
}
|