Advertisement
Guest User

Plz senpai-kun

a guest
Dec 16th, 2015
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.08 KB | None | 0 0
  1. /*PACKET CODE*/
  2. package packets.altarlightningpackets;
  3.  
  4. import io.netty.buffer.ByteBuf;
  5. import lyesoussaiden.satanicofferings.entities.HarmlessLightningBolt;
  6. import lyesoussaiden.satanicofferings.lib.ReferenceVariables;
  7. import net.minecraft.client.Minecraft;
  8. import net.minecraft.util.IThreadListener;
  9. import net.minecraft.world.WorldServer;
  10. import net.minecraftforge.fml.common.network.simpleimpl.IMessage;
  11. import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler;
  12. import net.minecraftforge.fml.common.network.simpleimpl.MessageContext;
  13.  
  14. public class AltarLightningPacket implements IMessage{
  15.    
  16.     private int x, y, z;
  17.    
  18.     public AltarLightningPacket() {}
  19.     public AltarLightningPacket(int x, int y, int z)
  20.     {
  21.         this.x = x;
  22.         this.y = y;
  23.         this.z = z;
  24.     }
  25.    
  26.     @Override
  27.     public void fromBytes(ByteBuf buf)
  28.     {
  29.         this.x = buf.readInt();
  30.         this.y = buf.readInt();
  31.         this.z = buf.readInt();
  32.     }
  33.  
  34.     @Override
  35.     public void toBytes(ByteBuf buf)
  36.     {
  37.         buf.writeInt(x);
  38.         buf.writeInt(y);
  39.         buf.writeInt(z);
  40.     }
  41.  
  42.  
  43.  
  44.     public static class Handler implements IMessageHandler<AltarLightningPacket, IMessage>
  45.     {
  46.  
  47.         @Override
  48.         public IMessage onMessage(AltarLightningPacket message, MessageContext ctx)
  49.         {
  50.             //OPERATING ON SERVER
  51.             /*IThreadListener mainThread = (WorldServer) ctx.getServerHandler().playerEntity.worldObj;*/
  52.            
  53.             //OPERATING ON CLIENT
  54.             IThreadListener mainThread = Minecraft.getMinecraft();
  55.             final AltarLightningPacket lmessage = message;
  56.             mainThread.addScheduledTask(new Runnable()
  57.                     {
  58.                         @Override
  59.                         public void run()
  60.                         {
  61.                             System.out.println(Minecraft.getMinecraft().thePlayer.getDisplayName() + " recieved a message from server. " + String.valueOf(lmessage.x) + " " + String.valueOf(lmessage.y) + " " + String.valueOf(lmessage.z));
  62.                             Minecraft.getMinecraft().theWorld.spawnEntityInWorld(new HarmlessLightningBolt(Minecraft.getMinecraft().theWorld, lmessage.x, lmessage.y, lmessage.z));
  63.                             Minecraft.getMinecraft().theWorld.playSound((double)lmessage.x, (double)lmessage.y, (double)lmessage.z, ReferenceVariables.MODID + ":demonicCallAltarFault", 5.0f, 1.0f, true);
  64.                         }  
  65.                     });
  66.            
  67.             return null;
  68.         }
  69.    
  70.     }
  71. }
  72.  
  73. /*PACKET REGISTRATION CODE*/
  74. package lyesoussaiden.satanicofferings.packets;
  75.  
  76. import lyesoussaiden.satanicofferings.lib.ReferenceVariables;
  77. import lyesoussaiden.satanicofferings.packets.altarlightningpackets.AltarLightningPacket;
  78. import net.minecraftforge.fml.common.network.NetworkRegistry;
  79. import net.minecraftforge.fml.common.network.simpleimpl.SimpleNetworkWrapper;
  80. import net.minecraftforge.fml.relauncher.Side;
  81.  
  82. public class ModChannels {
  83.     public SimpleNetworkWrapper modChannel;
  84.     public ModChannels()
  85.     {
  86.         modChannel = NetworkRegistry.INSTANCE.newSimpleChannel(ReferenceVariables.MODID + "_ser");
  87.         modChannel.registerMessage(AltarLightningPacket.Handler.class, AltarLightningPacket.class, 0, Side.CLIENT);
  88.     }
  89.  
  90. }
  91.  
  92. /*MAIN-MOD CODE*/
  93. package lyesoussaiden.satanicofferings.main;
  94.  
  95. import lyesoussaiden.satanicofferings.events.ModEvents;
  96. import lyesoussaiden.satanicofferings.init.ModBlocks;
  97. import lyesoussaiden.satanicofferings.init.ModCreativeTabs;
  98. import lyesoussaiden.satanicofferings.init.ModEntities;
  99. import lyesoussaiden.satanicofferings.init.ModItems;
  100. import lyesoussaiden.satanicofferings.init.ModRecipes;
  101. import lyesoussaiden.satanicofferings.lib.ReferenceVariables;
  102. import lyesoussaiden.satanicofferings.packets.ModChannels;
  103. import lyesoussaiden.satanicofferings.proxies.CommonProxy;
  104. import net.minecraftforge.fml.common.Mod;
  105. import net.minecraftforge.fml.common.Mod.EventHandler;
  106. import net.minecraftforge.fml.common.SidedProxy;
  107. import net.minecraftforge.fml.common.event.FMLInitializationEvent;
  108. import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
  109. import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
  110.  
  111.  
  112. @Mod(modid = ReferenceVariables.MODID, version = ReferenceVariables.VERSION, name = ReferenceVariables.MODNAME)
  113. public class SatanicOfferingsMod
  114. {
  115.     @SidedProxy(clientSide="lyesoussaiden.satanicofferings.proxies.ClientProxy", serverSide="lyesoussaiden.satanicofferings.proxies.ServerProxy")
  116.     public static CommonProxy proxy;
  117.    
  118.     public static ModChannels modChannels;
  119.    
  120.     @EventHandler
  121.     public void preInit(FMLPreInitializationEvent event)
  122.     {
  123.         ModBlocks.initAndRegister();
  124.         ModItems.initAndRegister();
  125.         ModCreativeTabs.register();
  126.         ModRecipes.register();
  127.         ModEvents.register();
  128.         ModEntities.register();
  129.         modChannels = new ModChannels();
  130.         proxy.preInit(event);
  131.     }
  132.    
  133.     @EventHandler
  134.     public void init(FMLInitializationEvent event)
  135.     {      
  136.         System.out.println(ReferenceVariables.MODID + " : Version " + ReferenceVariables.VERSION + " Initialized!");
  137.         proxy.init(event);
  138.     }
  139.    
  140.     @EventHandler
  141.     public void postInit(FMLPostInitializationEvent event)
  142.     {
  143.         proxy.postInit(event);
  144.     }
  145. }
  146.  
  147. /*BLOCK CLASS*/
  148. package lyesoussaiden.satanicofferings.init.classes.blocks;
  149.  
  150. import lyesoussaiden.satanicofferings.init.ModBlocks;
  151. import lyesoussaiden.satanicofferings.main.SatanicOfferingsMod;
  152. import lyesoussaiden.satanicofferings.packets.altarlightningpackets.AltarLightningPacket;
  153. import net.minecraft.block.Block;
  154. import net.minecraft.block.material.MapColor;
  155. import net.minecraft.block.material.Material;
  156. import net.minecraft.block.properties.IProperty;
  157. import net.minecraft.block.properties.PropertyDirection;
  158. import net.minecraft.block.state.BlockState;
  159. import net.minecraft.block.state.IBlockState;
  160. import net.minecraft.entity.EntityLivingBase;
  161. import net.minecraft.entity.player.EntityPlayer;
  162. import net.minecraft.util.BlockPos;
  163. import net.minecraft.util.ChatComponentText;
  164. import net.minecraft.util.EnumFacing;
  165. import net.minecraft.world.World;
  166.  
  167. public class SatanicAltarClass extends Block{
  168.     public static final PropertyDirection FACING = PropertyDirection.create("facing");
  169.     private boolean hasBeenCalledOnce;
  170.     long tempCountdown = 0;
  171.     public SatanicAltarClass(Material mat, MapColor mapColour) {
  172.         super(mat, mapColour);
  173.         setStepSound(soundTypePiston);
  174.         setResistance(9000f);
  175.         setHardness(20f);
  176.         setHarvestLevel("pickaxe", 2);
  177.         this.hasBeenCalledOnce = false;
  178.     }
  179.    
  180.     @Override
  181.     public boolean isFullBlock() {
  182.         return false;
  183.     }
  184.  
  185.     @Override
  186.     public boolean isBlockNormalCube() {
  187.         return false;
  188.     }
  189.  
  190.     @Override
  191.     public boolean isVisuallyOpaque() {
  192.         return false;
  193.     }
  194.  
  195.     @Override
  196.     public boolean isFullCube() {
  197.         return false;
  198.     }
  199.  
  200.     @Override
  201.     public boolean isOpaqueCube() {
  202.         return false;
  203.     }
  204.  
  205.     @Override
  206.     public IBlockState onBlockPlaced(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer)
  207.     {
  208.         if(placer instanceof EntityPlayer)
  209.         {
  210.             EntityPlayer player = (EntityPlayer)placer;
  211.         }
  212.         return this.getDefaultState().withProperty(FACING, placer.getHorizontalFacing());
  213.     }
  214.  
  215.     @Override
  216.     protected BlockState createBlockState()
  217.     {
  218.         BlockState blockState = new BlockState(this, new IProperty[] {FACING});
  219.         return blockState;
  220.     }
  221.  
  222.     @Override
  223.     public int getMetaFromState(IBlockState state)
  224.     {
  225.         byte b0 = 0;
  226.         int i = b0 | ((EnumFacing)state.getValue(FACING)).getIndex();
  227.         return i;
  228.     }
  229.  
  230.  
  231.     @Override
  232.     public boolean onBlockActivated(World worldIn, BlockPos pos, IBlockState state, EntityPlayer playerIn, EnumFacing side, float hitX, float hitY, float hitZ) {
  233.                 //System.out.println(String.valueOf(((PlayerPlaceSatanicAltarIEEP)playerIn.getExtendedProperties(PlayerPlaceSatanicAltarIEEP.EXT_PROP_NAME)).getAltarCooldown()) + " : IsRemote=" + String.valueOf(worldIn.isRemote));
  234.         if(!worldIn.isRemote)
  235.         {
  236.             if(worldIn.getBlockState(new BlockPos(pos.getX(), pos.getY() - 1, pos.getZ())).getBlock() != ModBlocks.enrichedObsidian)
  237.             {
  238.                 //if(System.currentTimeMillis() - tempCountdown > 5000)
  239.                 //{
  240.                     playerIn.addChatMessage(new ChatComponentText("This altar has not been enriched!"));
  241.                     SatanicOfferingsMod.modChannels.modChannel.sendToDimension(new AltarLightningPacket(pos.getX(), pos.getY(), pos.getZ()), playerIn.dimension);
  242.                 //  tempCountdown = System.currentTimeMillis();
  243.                 //}
  244.             }
  245.         }
  246.         return true;
  247.     }
  248.    
  249.    
  250. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement