Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*PACKET CODE*/
- package packets.altarlightningpackets;
- import io.netty.buffer.ByteBuf;
- import lyesoussaiden.satanicofferings.entities.HarmlessLightningBolt;
- import lyesoussaiden.satanicofferings.lib.ReferenceVariables;
- import net.minecraft.client.Minecraft;
- import net.minecraft.util.IThreadListener;
- import net.minecraft.world.WorldServer;
- import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
- import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
- import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
- public class AltarLightningPacket implements IMessage{
- private int x, y, z;
- public AltarLightningPacket() {}
- public AltarLightningPacket(int x, int y, int z)
- {
- this.x = x;
- this.y = y;
- this.z = z;
- }
- @Override
- public void fromBytes(ByteBuf buf)
- {
- this.x = buf.readInt();
- this.y = buf.readInt();
- this.z = buf.readInt();
- }
- @Override
- public void toBytes(ByteBuf buf)
- {
- buf.writeInt(x);
- buf.writeInt(y);
- buf.writeInt(z);
- }
- public static class Handler implements IMessageHandler<AltarLightningPacket, IMessage>
- {
- @Override
- public IMessage onMessage(AltarLightningPacket message, MessageContext ctx)
- {
- //OPERATING ON SERVER
- /*IThreadListener mainThread = (WorldServer) ctx.getServerHandler().playerEntity.worldObj;*/
- //OPERATING ON CLIENT
- IThreadListener mainThread = Minecraft.getMinecraft();
- final AltarLightningPacket lmessage = message;
- mainThread.addScheduledTask(new Runnable()
- {
- @Override
- public void run()
- {
- System.out.println(Minecraft.getMinecraft().thePlayer.getDisplayName() + " recieved a message from server. " + String.valueOf(lmessage.x) + " " + String.valueOf(lmessage.y) + " " + String.valueOf(lmessage.z));
- Minecraft.getMinecraft().theWorld.spawnEntityInWorld(new HarmlessLightningBolt(Minecraft.getMinecraft().theWorld, lmessage.x, lmessage.y, lmessage.z));
- Minecraft.getMinecraft().theWorld.playSound((double)lmessage.x, (double)lmessage.y, (double)lmessage.z, ReferenceVariables.MODID + ":demonicCallAltarFault", 5.0f, 1.0f, true);
- }
- });
- return null;
- }
- }
- }
- /*PACKET REGISTRATION CODE*/
- package lyesoussaiden.satanicofferings.packets;
- import lyesoussaiden.satanicofferings.lib.ReferenceVariables;
- import lyesoussaiden.satanicofferings.packets.altarlightningpackets.AltarLightningPacket;
- import net.minecraftforge.fml.common.network.NetworkRegistry;
- import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper;
- import net.minecraftforge.fml.relauncher.Side;
- public class ModChannels {
- public SimpleNetworkWrapper modChannel;
- public ModChannels()
- {
- modChannel = NetworkRegistry.INSTANCE.newSimpleChannel(ReferenceVariables.MODID + "_ser");
- modChannel.registerMessage(AltarLightningPacket.Handler.class, AltarLightningPacket.class, 0, Side.CLIENT);
- }
- }
- /*MAIN-MOD CODE*/
- package lyesoussaiden.satanicofferings.main;
- import lyesoussaiden.satanicofferings.events.ModEvents;
- import lyesoussaiden.satanicofferings.init.ModBlocks;
- import lyesoussaiden.satanicofferings.init.ModCreativeTabs;
- import lyesoussaiden.satanicofferings.init.ModEntities;
- import lyesoussaiden.satanicofferings.init.ModItems;
- import lyesoussaiden.satanicofferings.init.ModRecipes;
- import lyesoussaiden.satanicofferings.lib.ReferenceVariables;
- import lyesoussaiden.satanicofferings.packets.ModChannels;
- import lyesoussaiden.satanicofferings.proxies.CommonProxy;
- import net.minecraftforge.fml.common.Mod;
- import net.minecraftforge.fml.common.Mod.EventHandler;
- import net.minecraftforge.fml.common.SidedProxy;
- import net.minecraftforge.fml.common.event.FMLInitializationEvent;
- import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
- import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
- @Mod(modid = ReferenceVariables.MODID, version = ReferenceVariables.VERSION, name = ReferenceVariables.MODNAME)
- public class SatanicOfferingsMod
- {
- @SidedProxy(clientSide="lyesoussaiden.satanicofferings.proxies.ClientProxy", serverSide="lyesoussaiden.satanicofferings.proxies.ServerProxy")
- public static CommonProxy proxy;
- public static ModChannels modChannels;
- @EventHandler
- public void preInit(FMLPreInitializationEvent event)
- {
- ModBlocks.initAndRegister();
- ModItems.initAndRegister();
- ModCreativeTabs.register();
- ModRecipes.register();
- ModEvents.register();
- ModEntities.register();
- modChannels = new ModChannels();
- proxy.preInit(event);
- }
- @EventHandler
- public void init(FMLInitializationEvent event)
- {
- System.out.println(ReferenceVariables.MODID + " : Version " + ReferenceVariables.VERSION + " Initialized!");
- proxy.init(event);
- }
- @EventHandler
- public void postInit(FMLPostInitializationEvent event)
- {
- proxy.postInit(event);
- }
- }
- /*BLOCK CLASS*/
- package lyesoussaiden.satanicofferings.init.classes.blocks;
- import lyesoussaiden.satanicofferings.init.ModBlocks;
- import lyesoussaiden.satanicofferings.main.SatanicOfferingsMod;
- import lyesoussaiden.satanicofferings.packets.altarlightningpackets.AltarLightningPacket;
- import net.minecraft.block.Block;
- import net.minecraft.block.material.MapColor;
- import net.minecraft.block.material.Material;
- import net.minecraft.block.properties.IProperty;
- import net.minecraft.block.properties.PropertyDirection;
- import net.minecraft.block.state.BlockState;
- import net.minecraft.block.state.IBlockState;
- import net.minecraft.entity.EntityLivingBase;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraft.util.BlockPos;
- import net.minecraft.util.ChatComponentText;
- import net.minecraft.util.EnumFacing;
- import net.minecraft.world.World;
- public class SatanicAltarClass extends Block{
- public static final PropertyDirection FACING = PropertyDirection.create("facing");
- private boolean hasBeenCalledOnce;
- long tempCountdown = 0;
- public SatanicAltarClass(Material mat, MapColor mapColour) {
- super(mat, mapColour);
- setStepSound(soundTypePiston);
- setResistance(9000f);
- setHardness(20f);
- setHarvestLevel("pickaxe", 2);
- this.hasBeenCalledOnce = false;
- }
- @Override
- public boolean isFullBlock() {
- return false;
- }
- @Override
- public boolean isBlockNormalCube() {
- return false;
- }
- @Override
- public boolean isVisuallyOpaque() {
- return false;
- }
- @Override
- public boolean isFullCube() {
- return false;
- }
- @Override
- public boolean isOpaqueCube() {
- return false;
- }
- @Override
- public IBlockState onBlockPlaced(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer)
- {
- if(placer instanceof EntityPlayer)
- {
- EntityPlayer player = (EntityPlayer)placer;
- }
- return this.getDefaultState().withProperty(FACING, placer.getHorizontalFacing());
- }
- @Override
- protected BlockState createBlockState()
- {
- BlockState blockState = new BlockState(this, new IProperty[] {FACING});
- return blockState;
- }
- @Override
- public int getMetaFromState(IBlockState state)
- {
- byte b0 = 0;
- int i = b0 | ((EnumFacing)state.getValue(FACING)).getIndex();
- return i;
- }
- @Override
- public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumFacing side, float hitX, float hitY, float hitZ) {
- //System.out.println(String.valueOf(((PlayerPlaceSatanicAltarIEEP)playerIn.getExtendedProperties(PlayerPlaceSatanicAltarIEEP.EXT_PROP_NAME)).getAltarCooldown()) + " : IsRemote=" + String.valueOf(worldIn.isRemote));
- if(!worldIn.isRemote)
- {
- if(worldIn.getBlockState(new BlockPos(pos.getX(), pos.getY() - 1, pos.getZ())).getBlock() != ModBlocks.enrichedObsidian)
- {
- //if(System.currentTimeMillis() - tempCountdown > 5000)
- //{
- playerIn.addChatMessage(new ChatComponentText("This altar has not been enriched!"));
- SatanicOfferingsMod.modChannels.modChannel.sendToDimension(new AltarLightningPacket(pos.getX(), pos.getY(), pos.getZ()), playerIn.dimension);
- // tempCountdown = System.currentTimeMillis();
- //}
- }
- }
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement