use of uk.co.wehavecookies56.kk.common.network.packet.server.DeSummonOrgWeapon in project Kingdom-Keys-Re-Coded by Wehavecookies56.
the class EntityEvents method onLivingDeathEvent.
@SubscribeEvent
public void onLivingDeathEvent(LivingDeathEvent event) {
if (!event.getEntity().world.isRemote && event.getEntity() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getEntity();
SummonKeybladeCapability.ISummonKeyblade SUMMON = player.getCapability(ModCapabilities.SUMMON_KEYBLADE, null);
IOrganizationXIII ORG = player.getCapability(ModCapabilities.ORGANIZATION_XIII, null);
if (SUMMON.getIsKeybladeSummoned(EnumHand.MAIN_HAND)) {
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
PacketDispatcher.sendToServer(new DeSummonKeyblade());
PacketDispatcher.sendTo(new SyncKeybladeData(SUMMON), (EntityPlayerMP) player);
} else {
SUMMON.setIsKeybladeSummoned(EnumHand.MAIN_HAND, false);
if (event.getEntity().world.getGameRules().getBoolean("keepInventory")) {
for (int i = 0; i < player.inventory.getSizeInventory(); i++) {
if (!ItemStack.areItemStacksEqual(player.inventory.getStackInSlot(i), ItemStack.EMPTY)) {
if (player.inventory.getStackInSlot(i).getItem() instanceof ItemRealKeyblade) {
player.inventory.setInventorySlotContents(i, ItemStack.EMPTY);
}
}
}
}
}
} else if (ORG.summonedWeapon(EnumHand.MAIN_HAND)) {
if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) {
PacketDispatcher.sendToServer(new DeSummonOrgWeapon());
PacketDispatcher.sendTo(new SyncOrgXIIIData(ORG), (EntityPlayerMP) player);
} else {
SUMMON.setIsKeybladeSummoned(EnumHand.MAIN_HAND, false);
if (event.getEntity().world.getGameRules().getBoolean("keepInventory")) {
for (int i = 0; i < player.inventory.getSizeInventory(); i++) {
if (!ItemStack.areItemStacksEqual(player.inventory.getStackInSlot(i), ItemStack.EMPTY)) {
if (player.inventory.getStackInSlot(i).getItem() instanceof IOrgWeapon) {
player.inventory.setInventorySlotContents(i, ItemStack.EMPTY);
}
}
}
}
}
}
}
if (event.getEntity() instanceof EntityDragon) {
WorldSavedDataKingdomKeys.get(DimensionManager.getWorld(DimensionType.OVERWORLD.getId())).setSpawnHeartless(true);
}
if (!event.getEntity().world.isRemote && event.getEntity() instanceof EntityMob)
if (event.getSource().getTrueSource() instanceof EntityPlayer) {
EntityPlayer player = (EntityPlayer) event.getSource().getTrueSource();
EntityMob mob = (EntityMob) event.getEntity();
player.getCapability(ModCapabilities.PLAYER_STATS, null).addExperience(player, (int) (mob.getEntityAttribute(SharedMonsterAttributes.MAX_HEALTH).getAttributeValue() / 2));
if (!player.getCapability(ModCapabilities.PLAYER_STATS, null).enderDragonDefeated()) {
player.getCapability(ModCapabilities.DRIVE_STATE, null).setDriveGaugeLevel(player.getCapability(ModCapabilities.DRIVE_STATE, null).getDriveGaugeLevel() + 1);
player.getCapability(ModCapabilities.DRIVE_STATE, null).setDP(player.getCapability(ModCapabilities.DRIVE_STATE, null).getMaxDP());
PacketDispatcher.sendTo(new SyncDriveData(player.getCapability(ModCapabilities.DRIVE_STATE, null)), (EntityPlayerMP) player);
TextComponentTranslation driMessage = new TextComponentTranslation(Strings.Chat_DriveBoost, new TextComponentTranslation("" + player.getCapability(ModCapabilities.DRIVE_STATE, null).getDriveGaugeLevel()));
driMessage.getStyle().setColor(TextFormatting.GREEN);
player.sendMessage(driMessage);
player.getCapability(ModCapabilities.PLAYER_STATS, null).setEnderDragonDefeated(true);
}
if (event.getEntity() instanceof EntityDragon) {
player.getCapability(ModCapabilities.PLAYER_STATS, null).addExperience(player, 2000);
}
if (event.getEntity() instanceof EntityWither) {
player.getCapability(ModCapabilities.PLAYER_STATS, null).addExperience(player, 1500);
}
PacketDispatcher.sendTo(new SyncLevelData(player.getCapability(ModCapabilities.PLAYER_STATS, null)), (EntityPlayerMP) player);
}
}
use of uk.co.wehavecookies56.kk.common.network.packet.server.DeSummonOrgWeapon in project Kingdom-Keys-Re-Coded by Wehavecookies56.
the class Utils method summonWeapon.
/**
* Summon a weapon in a player's hand
* @param player
* @param hand
* @param keychainSlot
* @return
*/
public static boolean summonWeapon(EntityPlayer player, EnumHand hand, int keychainSlot) {
SummonKeybladeCapability.ISummonKeyblade summonCap = player.getCapability(ModCapabilities.SUMMON_KEYBLADE, null);
OrganizationXIIICapability.IOrganizationXIII organizationXIIICap = player.getCapability(ModCapabilities.ORGANIZATION_XIII, null);
if (organizationXIIICap.getMember() == Utils.OrgMember.NONE) {
if (ItemStack.areItemStacksEqual(summonCap.getInventoryKeychain().getStackInSlot(keychainSlot), ItemStack.EMPTY)) {
player.sendMessage(new TextComponentTranslation(TextFormatting.RED + "Missing keychain to summon"));
return false;
}
if (!summonCap.getIsKeybladeSummoned(hand) && ItemStack.areItemStacksEqual(player.getHeldItem(hand), ItemStack.EMPTY) && summonCap.getInventoryKeychain().getStackInSlot(0).getItem() instanceof ItemKeychain) {
summonCap.setActiveSlot(player.inventory.currentItem);
ItemStack keychain = summonCap.getInventoryKeychain().getStackInSlot(keychainSlot);
ItemStack keyblade = new ItemStack(((ItemKeychain) (keychain.getItem())).getKeyblade());
if (hand == EnumHand.MAIN_HAND) {
player.inventory.setInventorySlotContents(player.inventory.currentItem, keyblade);
} else {
player.inventory.offHandInventory.set(0, keyblade);
}
if (player.world.isRemote)
PacketDispatcher.sendToServer(new SummonKeyblade(hand, keychainSlot));
return true;
} else if (!ItemStack.areItemStacksEqual(player.getHeldItem(hand), ItemStack.EMPTY) && player.getHeldItem(hand).getItem() instanceof ItemRealKeyblade && summonCap.getIsKeybladeSummoned(hand)) {
if (player.world.isRemote)
PacketDispatcher.sendToServer(new DeSummonKeyblade(hand));
player.inventory.setInventorySlotContents(player.inventory.currentItem, ItemStack.EMPTY);
player.inventory.offHandInventory.set(0, ItemStack.EMPTY);
return true;
} else {
return false;
}
} else {
if (!organizationXIIICap.summonedWeapon(hand) && ItemStack.areItemStacksEqual(player.getHeldItem(hand), ItemStack.EMPTY)) {
if (player.world.isRemote)
PacketDispatcher.sendToServer(new SummonOrgWeapon(hand, organizationXIIICap.currentWeapon()));
if (hand == EnumHand.MAIN_HAND)
player.inventory.setInventorySlotContents(player.inventory.currentItem, new ItemStack(organizationXIIICap.currentWeapon()));
else
player.inventory.offHandInventory.set(0, new ItemStack(organizationXIIICap.currentWeapon()));
organizationXIIICap.setWeaponSummoned(hand, true);
return true;
} else if (!ItemStack.areItemStacksEqual(player.getHeldItem(hand), ItemStack.EMPTY) && player.getHeldItem(hand).getItem() instanceof IOrgWeapon || (organizationXIIICap.getMember() == Utils.OrgMember.ROXAS && !ItemStack.areItemStacksEqual(player.getHeldItem(hand), ItemStack.EMPTY) && player.getHeldItem(hand).getItem() instanceof ItemKeyblade)) {
if (player.world.isRemote) {
PacketDispatcher.sendToServer(new DeSummonOrgWeapon(hand));
}
organizationXIIICap.setWeaponSummoned(hand, false);
if (hand == EnumHand.MAIN_HAND)
player.inventory.setInventorySlotContents(player.inventory.currentItem, ItemStack.EMPTY);
else
player.inventory.offHandInventory.set(0, ItemStack.EMPTY);
return true;
} else {
return false;
}
}
}
Aggregations