package net.minecraft.world.demo;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.network.play.server.S2BPacketChangeGameState;
import net.minecraft.server.management.ItemInWorldManager;
import net.minecraft.util.BlockPos;
import net.minecraft.util.ChatComponentTranslation;
import net.minecraft.util.EnumFacing;
import net.minecraft.world.World;
public class DemoWorldManager extends ItemInWorldManager
{
private boolean field_73105_c;
private boolean demoTimeExpired;
private int field_73104_e;
private int field_73102_f;
private static final String __OBFID = "CL_00001429";
public DemoWorldManager(World worldIn)
{
super(worldIn);
}
public void updateBlockRemoving()
{
super.updateBlockRemoving();
++this.field_73102_f;
long var1 = this.theWorld.getTotalWorldTime();
long var3 = var1 / 24000L + 1L;
if (!this.field_73105_c && this.field_73102_f > 20)
{
this.field_73105_c = true;
this.thisPlayerMP.playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(5, 0.0F));
}
this.demoTimeExpired = var1 > 120500L;
if (this.demoTimeExpired)
{
++this.field_73104_e;
}
if (var1 % 24000L == 500L)
{
if (var3 <= 6L)
{
this.thisPlayerMP.addChatMessage(new ChatComponentTranslation("demo.day." + var3, new Object[0]));
}
}
else if (var3 == 1L)
{
if (var1 == 100L)
{
this.thisPlayerMP.playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(5, 101.0F));
}
else if (var1 == 175L)
{
this.thisPlayerMP.playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(5, 102.0F));
}
else if (var1 == 250L)
{
this.thisPlayerMP.playerNetServerHandler.sendPacket(new S2BPacketChangeGameState(5, 103.0F));
}
}
else if (var3 == 5L && var1 % 24000L == 22000L)
{
this.thisPlayerMP.addChatMessage(new ChatComponentTranslation("demo.day.warning", new Object[0]));
}
}
/**
* Sends a message to the player reminding them that this is the demo version
*/
private void sendDemoReminder()
{
if (this.field_73104_e > 100)
{
this.thisPlayerMP.addChatMessage(new ChatComponentTranslation("demo.reminder", new Object[0]));
this.field_73104_e = 0;
}
}
public void func_180784_a(BlockPos p_180784_1_, EnumFacing p_180784_2_)
{
if (this.demoTimeExpired)
{
this.sendDemoReminder();
}
else
{
super.func_180784_a(p_180784_1_, p_180784_2_);
}
}
public void func_180785_a(BlockPos p_180785_1_)
{
if (!this.demoTimeExpired)
{
super.func_180785_a(p_180785_1_);
}
}
public boolean func_180237_b(BlockPos p_180237_1_)
{
return this.demoTimeExpired ? false : super.func_180237_b(p_180237_1_);
}
/**
* Attempts to right-click use an item by the given EntityPlayer in the given World
*/
public boolean tryUseItem(EntityPlayer p_73085_1_, World worldIn, ItemStack p_73085_3_)
{
if (this.demoTimeExpired)
{
this.sendDemoReminder();
return false;
}
else
{
return super.tryUseItem(p_73085_1_, worldIn, p_73085_3_);
}
}
public boolean func_180236_a(EntityPlayer p_180236_1_, World worldIn, ItemStack p_180236_3_, BlockPos p_180236_4_, EnumFacing p_180236_5_, float p_180236_6_, float p_180236_7_, float p_180236_8_)
{
if (this.demoTimeExpired)
{
this.sendDemoReminder();
return false;
}
else
{
return super.func_180236_a(p_180236_1_, worldIn, p_180236_3_, p_180236_4_, p_180236_5_, p_180236_6_, p_180236_7_, p_180236_8_);
}
}
}