2012-11-05 20:29:04 +01:00
package mekanism.common ;
2012-10-03 21:12:17 +02:00
import java.util.Arrays ;
import java.util.List ;
2013-03-11 18:49:01 +01:00
import mekanism.api.EnumColor ;
2014-08-01 01:58:12 +02:00
import mekanism.api.MekanismConfig.general ;
2015-03-13 04:55:37 +01:00
import mekanism.common.frequency.Frequency ;
import mekanism.common.frequency.FrequencyManager ;
import mekanism.common.tile.TileEntityTeleporter ;
2013-08-27 00:57:08 +02:00
import mekanism.common.util.MekanismUtils ;
2012-12-20 22:53:39 +01:00
import net.minecraft.command.CommandBase ;
import net.minecraft.command.ICommandSender ;
2013-04-13 16:33:37 +02:00
import net.minecraft.entity.player.EntityPlayer ;
2013-07-29 22:38:10 +02:00
import net.minecraft.server.MinecraftServer ;
2014-06-02 23:57:40 +02:00
import net.minecraft.util.ChatComponentText ;
2012-10-03 21:12:17 +02:00
2012-11-05 20:29:04 +01:00
public class CommandMekanism extends CommandBase
2012-10-03 21:12:17 +02:00
{
2012-11-06 16:44:14 +01:00
@Override
2013-07-29 22:38:10 +02:00
public boolean canCommandSenderUseCommand ( ICommandSender sender )
{
return MinecraftServer . getServer ( ) . isSinglePlayer ( ) | | super . canCommandSenderUseCommand ( sender ) ;
}
2014-03-08 02:00:25 +01:00
2013-07-29 22:38:10 +02:00
@Override
2014-03-08 02:00:25 +01:00
public String getCommandName ( )
{
return " mk " ;
}
2012-11-06 16:44:14 +01:00
@Override
2014-03-08 02:00:25 +01:00
public String getCommandUsage ( ICommandSender sender )
{
return " /mk <parameters> " ;
}
2012-11-06 16:44:14 +01:00
@Override
2012-10-03 21:12:17 +02:00
public List getCommandAliases ( )
{
2013-02-14 19:26:13 +01:00
return Arrays . asList ( new String [ ] { " mekanism " , " mek " } ) ;
2012-10-03 21:12:17 +02:00
}
2014-03-08 02:00:25 +01:00
2012-11-06 16:44:14 +01:00
@Override
2014-03-08 02:00:25 +01:00
public void processCommand ( ICommandSender sender , String [ ] params )
{
if ( params . length < 1 )
{
2014-04-20 22:15:44 +02:00
sender . addChatMessage ( new ChatComponentText ( EnumColor . GREY + " ------------- " + EnumColor . DARK_BLUE + " [Mekanism] " + EnumColor . GREY + " ------------- " ) ) ;
sender . addChatMessage ( new ChatComponentText ( EnumColor . GREY + " *Version: " + EnumColor . DARK_GREY + Mekanism . versionNumber ) ) ;
sender . addChatMessage ( new ChatComponentText ( EnumColor . GREY + " *Latest Version: " + EnumColor . DARK_GREY + Mekanism . latestVersionNumber ) ) ;
sender . addChatMessage ( new ChatComponentText ( EnumColor . GREY + " *Developed on Mac OS X 10.8 Mountain Lion " ) ) ;
sender . addChatMessage ( new ChatComponentText ( EnumColor . GREY + " *Code, textures, and ideas by aidancbrady " ) ) ;
sender . addChatMessage ( new ChatComponentText ( EnumColor . GREY + " *Recent News: " + EnumColor . INDIGO + Mekanism . recentNews ) ) ;
sender . addChatMessage ( new ChatComponentText ( EnumColor . GREY + " ------------- " + EnumColor . DARK_BLUE + " [=======] " + EnumColor . GREY + " ------------- " ) ) ;
2014-03-08 02:00:25 +01:00
}
2015-03-13 04:55:37 +01:00
else if ( params . length > = 1 )
2014-03-08 02:00:25 +01:00
{
if ( params [ 0 ] . equalsIgnoreCase ( " help " ) )
{
2015-03-13 04:55:37 +01:00
if ( params . length = = 1 )
{
sender . addChatMessage ( new ChatComponentText ( EnumColor . GREY + " ------------- " + EnumColor . DARK_BLUE + " [Mekanism] " + EnumColor . GREY + " ------------- " ) ) ;
sender . addChatMessage ( new ChatComponentText ( EnumColor . INDIGO + " /mk " + EnumColor . GREY + " -- displays the main page. " ) ) ;
sender . addChatMessage ( new ChatComponentText ( EnumColor . INDIGO + " /mk help " + EnumColor . GREY + " -- displays this guide. " ) ) ;
sender . addChatMessage ( new ChatComponentText ( EnumColor . INDIGO + " /mk version " + EnumColor . GREY + " -- displays the version number. " ) ) ;
sender . addChatMessage ( new ChatComponentText ( EnumColor . INDIGO + " /mk latest " + EnumColor . GREY + " -- displays the latest version number. " ) ) ;
sender . addChatMessage ( new ChatComponentText ( EnumColor . INDIGO + " /mk news " + EnumColor . GREY + " -- displays most recent recent news. " ) ) ;
sender . addChatMessage ( new ChatComponentText ( EnumColor . INDIGO + " /mk debug " + EnumColor . GREY + " -- toggles Mekanism's debug mode. " ) ) ;
sender . addChatMessage ( new ChatComponentText ( EnumColor . INDIGO + " /mk teleporter " + EnumColor . GREY + " -- provides information on teleporters. " ) ) ;
sender . addChatMessage ( new ChatComponentText ( EnumColor . GREY + " ------------- " + EnumColor . DARK_BLUE + " [=======] " + EnumColor . GREY + " ------------- " ) ) ;
}
else if ( params [ 1 ] . equalsIgnoreCase ( " teleporter " ) )
{
sender . addChatMessage ( new ChatComponentText ( EnumColor . GREY + " ------------- " + EnumColor . DARK_BLUE + " [Mekanism] " + EnumColor . GREY + " ------------- " ) ) ;
sender . addChatMessage ( new ChatComponentText ( EnumColor . INDIGO + " /mk teleporter freq list " + EnumColor . GREY + " -- displays a list of the public frequencies. " ) ) ;
sender . addChatMessage ( new ChatComponentText ( EnumColor . INDIGO + " /mk teleporter freq list [user] " + EnumColor . GREY + " -- displays a list of a certain user's private frequencies. " ) ) ;
sender . addChatMessage ( new ChatComponentText ( EnumColor . INDIGO + " /mk teleporter freq delete [freq] " + EnumColor . GREY + " -- removes a frequency from the public list. " ) ) ;
sender . addChatMessage ( new ChatComponentText ( EnumColor . INDIGO + " /mk teleporter freq delete [user] [freq] " + EnumColor . GREY + " -- removes a freqency from a certain user's private list. " ) ) ;
sender . addChatMessage ( new ChatComponentText ( EnumColor . INDIGO + " /mk teleporter freq deleteAll [user] " + EnumColor . GREY + " -- removes all frequencies owned by a certain user. " ) ) ;
sender . addChatMessage ( new ChatComponentText ( EnumColor . GREY + " ------------- " + EnumColor . DARK_BLUE + " [=======] " + EnumColor . GREY + " ------------- " ) ) ;
}
2014-03-08 02:00:25 +01:00
}
else if ( params [ 0 ] . equalsIgnoreCase ( " version " ) )
{
if ( ! MekanismUtils . checkForUpdates ( ( EntityPlayer ) sender ) )
{
2014-08-01 01:58:12 +02:00
if ( general . updateNotifications | | Mekanism . latestVersionNumber = = null | | Mekanism . recentNews = = null | | Mekanism . latestVersionNumber . equals ( " null " ) )
2014-03-08 02:00:25 +01:00
{
2014-04-20 22:15:44 +02:00
sender . addChatMessage ( new ChatComponentText ( EnumColor . DARK_BLUE + " [Mekanism] " + EnumColor . GREY + " Minecraft is in offline mode, could not check for updates. " ) ) ;
2014-03-08 02:00:25 +01:00
}
else {
2014-04-20 22:15:44 +02:00
sender . addChatMessage ( new ChatComponentText ( EnumColor . DARK_BLUE + " [Mekanism] " + EnumColor . GREY + " Your client is up to date. " ) ) ;
2014-03-08 02:00:25 +01:00
}
}
}
else if ( params [ 0 ] . equalsIgnoreCase ( " news " ) )
{
2014-04-20 22:15:44 +02:00
sender . addChatMessage ( new ChatComponentText ( EnumColor . DARK_BLUE + " [Mekanism] " + EnumColor . GREY + " Most recent news: " + EnumColor . INDIGO + Mekanism . recentNews ) ) ;
2014-03-08 02:00:25 +01:00
}
else if ( params [ 0 ] . equalsIgnoreCase ( " latest " ) )
{
2014-04-20 22:15:44 +02:00
sender . addChatMessage ( new ChatComponentText ( EnumColor . DARK_BLUE + " [Mekanism] " + EnumColor . GREY + " The latest version for this mod is " + EnumColor . DARK_GREY + Mekanism . latestVersionNumber + EnumColor . GREY + " . " ) ) ;
2014-03-08 02:00:25 +01:00
}
2015-03-13 04:55:37 +01:00
else if ( params [ 0 ] . equalsIgnoreCase ( " teleporter " ) )
{
if ( params . length = = 2 )
{
sender . addChatMessage ( new ChatComponentText ( EnumColor . DARK_BLUE + " [Mekanism] " + EnumColor . GREY + " Invalid parameters. " ) ) ;
}
else if ( params [ 1 ] . equalsIgnoreCase ( " freq " ) | | params [ 1 ] . equalsIgnoreCase ( " frequencies " ) )
{
if ( params [ 2 ] . equalsIgnoreCase ( " list " ) )
{
sender . addChatMessage ( new ChatComponentText ( EnumColor . GREY + " ------------- " + EnumColor . DARK_BLUE + " [Mekanism] " + EnumColor . GREY + " ------------- " ) ) ;
if ( params . length = = 3 )
{
for ( Frequency freq : Mekanism . publicTeleporters . getFrequencies ( ) )
{
sender . addChatMessage ( new ChatComponentText ( EnumColor . INDIGO + " - " + freq . name + EnumColor . GREY + " ( " + freq . owner + " ) " ) ) ;
}
}
else {
FrequencyManager manager = TileEntityTeleporter . loadManager ( params [ 3 ] . trim ( ) , sender . getEntityWorld ( ) ) ;
if ( manager ! = null )
{
for ( Frequency freq : manager . getFrequencies ( ) )
{
sender . addChatMessage ( new ChatComponentText ( EnumColor . INDIGO + " - " + freq . name + EnumColor . GREY + " ( " + freq . owner + " ) " ) ) ;
}
}
else {
sender . addChatMessage ( new ChatComponentText ( EnumColor . DARK_BLUE + " [Mekanism] " + EnumColor . GREY + " User profile doesn't exist. " ) ) ;
}
}
sender . addChatMessage ( new ChatComponentText ( EnumColor . GREY + " ------------- " + EnumColor . DARK_BLUE + " [=======] " + EnumColor . GREY + " ------------- " ) ) ;
}
else if ( params [ 2 ] . equalsIgnoreCase ( " delete " ) )
{
if ( params . length = = 4 )
{
if ( Mekanism . publicTeleporters . containsFrequency ( params [ 3 ] . trim ( ) ) )
{
Mekanism . publicTeleporters . remove ( params [ 3 ] . trim ( ) ) ;
sender . addChatMessage ( new ChatComponentText ( EnumColor . DARK_BLUE + " [Mekanism] " + EnumColor . GREY + " Successfully removed frequency. " ) ) ;
}
else {
sender . addChatMessage ( new ChatComponentText ( EnumColor . DARK_BLUE + " [Mekanism] " + EnumColor . GREY + " No such frequency found. " ) ) ;
}
}
else if ( params . length = = 5 )
{
FrequencyManager manager = TileEntityTeleporter . loadManager ( params [ 3 ] . trim ( ) , sender . getEntityWorld ( ) ) ;
if ( manager ! = null )
{
if ( manager . containsFrequency ( params [ 4 ] . trim ( ) ) )
{
manager . remove ( params [ 4 ] . trim ( ) ) ;
sender . addChatMessage ( new ChatComponentText ( EnumColor . DARK_BLUE + " [Mekanism] " + EnumColor . GREY + " Successfully removed frequency. " ) ) ;
}
else {
sender . addChatMessage ( new ChatComponentText ( EnumColor . DARK_BLUE + " [Mekanism] " + EnumColor . GREY + " No such frequency found. " ) ) ;
}
}
else {
sender . addChatMessage ( new ChatComponentText ( EnumColor . DARK_BLUE + " [Mekanism] " + EnumColor . GREY + " User profile doesn't exist. " ) ) ;
}
}
}
else if ( params [ 2 ] . equalsIgnoreCase ( " deleteAll " ) )
{
if ( params . length = = 4 )
{
String owner = params [ 3 ] . trim ( ) ;
FrequencyManager manager = TileEntityTeleporter . loadManager ( owner , sender . getEntityWorld ( ) ) ;
if ( manager ! = null )
{
int amount = Mekanism . publicTeleporters . removeAll ( owner ) ;
amount + = manager . removeAll ( owner ) ;
sender . addChatMessage ( new ChatComponentText ( EnumColor . DARK_BLUE + " [Mekanism] " + EnumColor . GREY + " Successfully removed " + amount + " frequencies. " ) ) ;
}
else {
sender . addChatMessage ( new ChatComponentText ( EnumColor . DARK_BLUE + " [Mekanism] " + EnumColor . GREY + " User profile doesn't exist. " ) ) ;
}
}
}
}
}
2014-03-08 02:00:25 +01:00
else if ( params [ 0 ] . equalsIgnoreCase ( " debug " ) )
{
Mekanism . debug = ! Mekanism . debug ;
2014-04-20 22:15:44 +02:00
sender . addChatMessage ( new ChatComponentText ( EnumColor . DARK_BLUE + " [Mekanism] " + EnumColor . GREY + " Debug mode set to " + EnumColor . DARK_GREY + Mekanism . debug ) ) ;
2014-03-08 02:00:25 +01:00
}
else {
2014-04-20 22:15:44 +02:00
sender . addChatMessage ( new ChatComponentText ( EnumColor . DARK_BLUE + " [Mekanism] " + EnumColor . GREY + " Unknown command. Type ' " + EnumColor . INDIGO + " /mk help " + EnumColor . GREY + " ' for help. " ) ) ;
2014-03-08 02:00:25 +01:00
}
}
}
2014-01-04 19:16:24 +01:00
@Override
public int compareTo ( Object obj )
{
return 0 ;
}
2012-10-03 21:12:17 +02:00
}