2 Commits

Author SHA1 Message Date
2e25241865 init 2025-02-21 21:04:47 +03:00
289fb241bd init 2025-02-17 17:34:46 +03:00
8 changed files with 106 additions and 151 deletions

View File

@ -9,13 +9,12 @@ buildscript {
}
apply plugin: 'net.minecraftforge.gradle'
// Only edit below this line, the above code adds and enables the necessary things for Forge to be setup.
apply plugin: 'eclipse'
apply plugin: 'maven-publish'
version = '1.0'
group = 'com.yourname.modid' // http://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = 'modid'
group = 'com.punkcraft.zombiedrop'
archivesBaseName = 'zombiedrop'
sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8' // Need this here so eclipse task generates correctly.
@ -45,21 +44,6 @@ dependencies {
minecraft 'net.minecraftforge:forge:1.12.2-14.23.5.2860'
}
// Example for how to get properties into the manifest for reading by the runtime..
jar {
manifest {
attributes([
"Specification-Title": "examplemod",
"Specification-Vendor": "examplemodsareus",
"Specification-Version": "1", // We are version 1 of ourselves
"Implementation-Title": project.name,
"Implementation-Version": "${version}",
"Implementation-Vendor" :"examplemodsareus",
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
])
}
}
jar.finalizedBy('reobfJar')
publishing {

View File

@ -1,112 +0,0 @@
package com.punkcraft.punkapi;
import com.google.common.io.ByteArrayDataOutput;
import com.google.common.io.ByteStreams;
import io.netty.buffer.Unpooled;
import net.minecraft.client.entity.EntityPlayerSP;
import net.minecraft.entity.ai.attributes.IAttributeInstance;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemSword;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraft.client.Minecraft;
import net.minecraft.network.NetworkManager;
import net.minecraft.network.PacketBuffer;
import net.minecraft.network.play.client.CPacketCustomPayload;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent;
import net.minecraftforge.fml.common.network.FMLNetworkEvent;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import java.io.File;
@Mod(modid = PunkAPI.MODID, name = PunkAPI.NAME, version = PunkAPI.VERSION)
public class PunkAPI {
public static final String MODID = "punkapi";
public static final String NAME = "PunkAPI";
public static final String VERSION = "1.0";
private String token;
private ItemStack prevMainHandItem = ItemStack.EMPTY;
@Mod.EventHandler
public void init(FMLInitializationEvent event) {
token = System.getProperty("token");
String c = System.getProperty("c");
if (c == null || !c.equals("ea42ba5b1a35b89e628e07f881198144")) {
// Minecraft.getMinecraft().shutdown();
}
MinecraftForge.EVENT_BUS.register(this);
File minecraftDir = Minecraft.getMinecraft().mcDataDir.getAbsoluteFile().getParentFile();
String directoryName = minecraftDir.getName();
if (!"ZombieExtrieme".equals(directoryName)) {
Minecraft.getMinecraft().shutdown();
}
}
@Mod.EventHandler
public void preInit(FMLPreInitializationEvent event) {
}
@SubscribeEvent
@SideOnly(Side.CLIENT)
public void onClientConnected(FMLNetworkEvent.ClientConnectedToServerEvent event) {
NetworkManager networkManager = event.getManager();
sendToken(networkManager);
}
@SubscribeEvent
public void onClientItemChange(TickEvent.ClientTickEvent event) {
EntityPlayerSP player = Minecraft.getMinecraft().player;
if (player == null) {
return;
}
ItemStack currentMainHandItem = player.getHeldItemMainhand();
if (!ItemStack.areItemStacksEqual(prevMainHandItem, currentMainHandItem)) {
onItemChange(player, currentMainHandItem);
prevMainHandItem = currentMainHandItem.copy();
}
}
private void onItemChange(EntityPlayer player, ItemStack newItem) {
IAttributeInstance attribute = player.getEntityAttribute(EntityPlayer.REACH_DISTANCE);
if (newItem.getItem() instanceof ItemSword) {
attribute.setBaseValue(1.17);
} else if (newItem.getItem() == Items.WOODEN_AXE) {
attribute.setBaseValue(0);
} else {
attribute.setBaseValue(4.0);
}
}
@SubscribeEvent
@SideOnly(Side.CLIENT)
public void onClientTick(TickEvent.ClientTickEvent event) {
Minecraft.getMinecraft().gameSettings.gammaSetting = 0.0f;
}
private void sendToken(NetworkManager networkManager) {
String playerName = Minecraft.getMinecraft().getSession().getUsername();
ByteArrayDataOutput out = ByteStreams.newDataOutput();
//out.writeUTF(token);
out.writeUTF("ea42ba5b1a35b89e628e07f881198144");
out.writeUTF(playerName);
out.writeUTF("ea42ba5b1a35b89e628e07f881198144");
CPacketCustomPayload packet = new CPacketCustomPayload("custom:token",
new PacketBuffer(Unpooled.wrappedBuffer(out.toByteArray())));
networkManager.sendPacket(packet);
}
}

View File

@ -0,0 +1,12 @@
package com.punkcraft.zombiedrop;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
public class ClientProxy extends CommonProxy {
@Override
public void preInit(FMLPreInitializationEvent event) {}
@Override
public void init(FMLInitializationEvent event) {}
}

View File

@ -0,0 +1,10 @@
package com.punkcraft.zombiedrop;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
public class CommonProxy {
public void preInit(FMLPreInitializationEvent event) {}
public void init(FMLInitializationEvent event) {}
}

View File

@ -0,0 +1,42 @@
package com.punkcraft.zombiedrop;
import net.minecraft.util.DamageSource;
import net.minecraft.world.World;
import net.minecraft.entity.monster.EntityZombie;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.entity.item.EntityItem;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.living.LivingDropsEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
public class ServerProxy extends CommonProxy {
@Override
public void preInit(FMLPreInitializationEvent event) {
MinecraftForge.EVENT_BUS.register(this);
}
@SubscribeEvent
public void onLivingDrops(LivingDropsEvent event) {
if (event.getEntityLiving() instanceof EntityZombie) {
EntityZombie zombie = (EntityZombie) event.getEntityLiving();
DamageSource source = event.getSource();
if (source.getTrueSource() != null || source.isExplosion()) {
int random = zombie.world.rand.nextInt(100);
if (random < 4) {
ItemStack enderPearl = new ItemStack(Item.getItemById(368), 1);
World world = zombie.world;
double x = zombie.posX;
double y = zombie.posY;
double z = zombie.posZ;
EntityItem entityItem = new EntityItem(world, x, y, z, enderPearl);
event.getDrops().add(entityItem);
}
}
}
}
}

View File

@ -0,0 +1,26 @@
package com.punkcraft.zombiedrop;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
@Mod(modid = ZombieDrop.MODID, name = ZombieDrop.NAME, version = ZombieDrop.VERSION, canBeDeactivated = true, acceptableRemoteVersions = "*")
public class ZombieDrop {
public static final String MODID = "zombiedrop";
public static final String NAME = "ZombieDrop";
public static final String VERSION = "1.0";
@SidedProxy(serverSide = "com.punkcraft.zombiedrop.ServerProxy")
public static CommonProxy proxy;
@Mod.EventHandler
public void preInit(FMLPreInitializationEvent event) {
proxy.preInit(event);
}
@Mod.EventHandler
public void init(FMLInitializationEvent event) {
proxy.init(event);
}
}

View File

@ -1,16 +1,16 @@
[
{
"modid": "pkapi",
"name": "PKAPI",
"description": "",
"version": "${version}",
"mcversion": "${mcversion}",
"url": "",
"updateUrl": "",
"authorList": ["PIVODEVAT"],
"credits": "",
"logoFile": "",
"screenshots": [],
"dependencies": []
}
{
"modid": "zombiedrop",
"name": "ZombieDrop",
"description": "Добавляет 99% шанс дропа эндерпёрла с зомби. Мод работает только на сервере и не требует установки на клиенте.",
"version": "1.0",
"mcversion": "1.12.2",
"url": "",
"updateUrl": "",
"authorList": ["PIVODEVAT"],
"credits": "",
"logoFile": "",
"screenshots": [],
"dependencies": [],
}
]

View File

@ -1,7 +0,0 @@
{
"pack": {
"description": "examplemod resources",
"pack_format": 3,
"_comment": "A pack_format of 3 should be used starting with Minecraft 1.11. All resources, including language files, should be lowercase (eg: en_us.lang). A pack_format of 2 will load your mod resources with LegacyV2Adapter, which requires language files to have uppercase letters (eg: en_US.lang)."
}
}