net.sf.l2j.gameserver.model.actor.instance.L2RebirthInstance.java Source code

Java tutorial

Introduction

Here is the source code for net.sf.l2j.gameserver.model.actor.instance.L2RebirthInstance.java

Source

/*
 * This program is free software: you can redistribute it and/or modify it under
 * the terms of the GNU General Public License as published by the Free Software
 * Foundation, either version 3 of the License, or (at your option) any later
 * version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details.
 *
 * You should have received a copy of the GNU General Public License along with
 * this program. If not, see <http://www.gnu.org/licenses/>.
 */
package net.sf.l2j.gameserver.model.actor.instance;

import java.util.StringTokenizer;

import net.sf.l2j.Config;
import net.sf.l2j.gameserver.ai.CtrlIntention;
import net.sf.l2j.gameserver.datatables.SkillTable;
import net.sf.l2j.gameserver.model.L2ItemInstance;
import net.sf.l2j.gameserver.model.L2Skill;
import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;
import net.sf.l2j.gameserver.network.serverpackets.MyTargetSelected;
import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
import net.sf.l2j.gameserver.network.serverpackets.SocialAction;
import net.sf.l2j.gameserver.network.serverpackets.ValidateLocation;
import net.sf.l2j.gameserver.templates.L2NpcTemplate;
import net.sf.l2j.util.Rnd;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * @author DaRkRaGe [L2JOneo]
 */
public class L2RebirthInstance extends L2FolkInstance {
    public L2RebirthInstance(int objectId, L2NpcTemplate template) {
        super(objectId, template);
    }

    @SuppressWarnings("unused")
    private final static Log _log = LogFactory.getLog(L2RebirthInstance.class.getName());

    @Override
    public void onBypassFeedback(L2PcInstance player, String command) {
        player.sendPacket(ActionFailed.STATIC_PACKET);
        StringTokenizer st = new StringTokenizer(command, " ");
        String actualCommand = st.nextToken();
        String val = "";
        if (st.countTokens() >= 1) {
            val = st.nextToken();
        }
        if (actualCommand.equalsIgnoreCase("rebirth")) {
            setTarget(player);
            int lvl = player.getLevel();
            if (lvl >= 80) {
                if (val.equalsIgnoreCase("79")) {
                    long delexp = 0;
                    delexp = player.getStat().getExp() - player.getStat().getExpForLevel(lvl - 79);
                    player.getStat().addExp(-delexp);
                    player.broadcastKarma();
                    player.sendMessage("Rebirth Accepted.");
                    int itemReward = 1;
                    player.addItem("Loot", Config.REBIRTH_ITEM, itemReward, player, true);
                    player.sendMessage("You have win " + itemReward + " Rebirth Item");
                } else {
                    NpcHtmlMessage html = new NpcHtmlMessage(1);
                    html.setFile("data/html/mods/Rebirth/Rebirth.htm");
                    html.replace("%lvl%", String.valueOf(player.getLevel()));
                    sendHtmlMessage(player, html);
                }
            } else {
                player.sendMessage("You have to be at least level 80 to use Rebirth Engine.");
            }
            return;
        } else if (actualCommand.equalsIgnoreCase("Reward")) {
            setTarget(player);
            L2ItemInstance invItem = player.getInventory().getItemByItemId(Config.REBIRTH_ITEM);
            {
                if (invItem != null) {
                    NpcHtmlMessage html = new NpcHtmlMessage(1);
                    html.setFile("data/html/mods/Rebirth/reward.htm");
                    html.replace("%lvl%", String.valueOf(player.getLevel()));
                    sendHtmlMessage(player, html);
                } else {
                    player.sendMessage("You Need Rebirth Book.");
                }
            }
        } else if (actualCommand.equalsIgnoreCase("skill1")) {
            setTarget(player);
            player.destroyItem("Consume", Config.REBIRTH_ITEM, 1, null, false);
            L2Skill skill = SkillTable.getInstance().getInfo(Config.REBIRTH_SKILL1, Config.REBIRTH_SKILL1_LVL);
            player.addSkill(skill, true);
        } else if (actualCommand.equalsIgnoreCase("skill2")) {
            setTarget(player);
            player.destroyItem("Consume", Config.REBIRTH_ITEM, 1, null, false);
            L2Skill skill = SkillTable.getInstance().getInfo(Config.REBIRTH_SKILL2, Config.REBIRTH_SKILL2_LVL);
            player.addSkill(skill, true);
        } else if (actualCommand.equalsIgnoreCase("skill3")) {
            setTarget(player);
            player.destroyItem("Consume", Config.REBIRTH_ITEM, 1, null, false);
            L2Skill skill = SkillTable.getInstance().getInfo(Config.REBIRTH_SKILL3, Config.REBIRTH_SKILL3_LVL);
            player.addSkill(skill, true);
        } else if (actualCommand.equalsIgnoreCase("skill4")) {
            setTarget(player);
            player.destroyItem("Consume", Config.REBIRTH_ITEM, 1, null, false);
            L2Skill skill = SkillTable.getInstance().getInfo(Config.REBIRTH_SKILL4, Config.REBIRTH_SKILL4_LVL);
            player.addSkill(skill, true);
        } else if (actualCommand.equalsIgnoreCase("skill5")) {
            setTarget(player);
            player.destroyItem("Consume", Config.REBIRTH_ITEM, 1, null, false);
            L2Skill skill = SkillTable.getInstance().getInfo(Config.REBIRTH_SKILL5, Config.REBIRTH_SKILL5_LVL);
            player.addSkill(skill, true);
        } else if (actualCommand.equalsIgnoreCase("skill6")) {
            setTarget(player);
            player.destroyItem("Consume", Config.REBIRTH_ITEM, 1, null, false);
            L2Skill skill = SkillTable.getInstance().getInfo(Config.REBIRTH_SKILL6, Config.REBIRTH_SKILL6_LVL);
            player.addSkill(skill, true);
        } else if (actualCommand.equalsIgnoreCase("skill7")) {
            setTarget(player);
            player.destroyItem("Consume", Config.REBIRTH_ITEM, 1, null, false);
            L2Skill skill = SkillTable.getInstance().getInfo(Config.REBIRTH_SKILL7, Config.REBIRTH_SKILL7_LVL);
            player.addSkill(skill, true);
        } else if (actualCommand.equalsIgnoreCase("skill8")) {
            setTarget(player);
            player.destroyItem("Consume", Config.REBIRTH_ITEM, 1, null, false);
            L2Skill skill = SkillTable.getInstance().getInfo(Config.REBIRTH_SKILL8, Config.REBIRTH_SKILL8_LVL);
            player.addSkill(skill, true);
        } else if (actualCommand.equalsIgnoreCase("skill9")) {
            setTarget(player);
            player.destroyItem("Consume", Config.REBIRTH_ITEM, 1, null, false);
            L2Skill skill = SkillTable.getInstance().getInfo(Config.REBIRTH_SKILL9, Config.REBIRTH_SKILL9_LVL);
            player.addSkill(skill, true);
        } else if (actualCommand.equalsIgnoreCase("skill10")) {
            setTarget(player);
            player.destroyItem("Consume", Config.REBIRTH_ITEM, 1, null, false);
            L2Skill skill = SkillTable.getInstance().getInfo(Config.REBIRTH_SKILL10, Config.REBIRTH_SKILL10_LVL);
            player.addSkill(skill, true);
        } else {
            super.onBypassFeedback(player, command);
        }
    }

    @Override
    public void onAction(L2PcInstance player) {
        if (this != player.getTarget()) {
            player.setTarget(this);
            player.sendPacket(new MyTargetSelected(getObjectId(), player.getLevel() - getLevel()));
            player.sendPacket(new ValidateLocation(this));
        } else if (isInsideRadius(player, INTERACTION_DISTANCE, false, false)) {
            SocialAction sa = new SocialAction(getObjectId(), Rnd.get(8));
            broadcastPacket(sa);
            player.setLastFolkNPC(this);
            showMessageWindow(player);
            player.sendPacket(ActionFailed.STATIC_PACKET);
        } else {
            player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this);
            player.sendPacket(ActionFailed.STATIC_PACKET);
        }
    }

    private void showMessageWindow(L2PcInstance player) {
        NpcHtmlMessage html = new NpcHtmlMessage(1);
        html.setFile("data/html/mods/Rebirth/main.htm");
        html.replace("%objectId%", String.valueOf(getObjectId()));
        html.replace("%npcname%", getName());
        player.sendPacket(html);
    }

    private void sendHtmlMessage(L2PcInstance player, NpcHtmlMessage html) {
        html.replace("%objectId%", String.valueOf(getObjectId()));
        html.replace("%npcname%", getName());
        html.replace("%npcId%", String.valueOf(getNpcId()));
        player.sendPacket(html);
    }
}