Jump to content
  • 0

Make .res Use Only Once In 5 Minutes


Question

Posted

hello there can you help me make this when people die when they type .res and after that he must wait 5 minutes till use it again there is code

Index: java/com/l2j/frozen/gameserver/handler/VoicedCommandHandler.java
===================================================================
--- java/com/l2j/frozen/gameserver/handler/VoicedCommandHandler.java
+++ java/com/l2j/frozen/gameserver/handler/VoicedCommandHandler.java

    import com.l2jfrozen.gameserver.handler.voicedcommandhandlers.Wedding;
 + import com.l2jfrozen.gameserver.handler.voicedcommandhandlers.Res;



		if(Config.ALLOW_ONLINE_VIEW)
		{
			registerVoicedCommandHandler(new Online());
		}

	+      if(Config.RES_COMMAND)
	+     {
	+	       registerVoicedCommandHandler(new Res());
        +     }  

Index: java/com/l2j/frozen/Config.java
===================================================================
--- java/com/l2j/frozen/Config.java
+++ java/com/l2j/frozen/Config.java


        public static String FARM1_CUSTOM_MESSAGE;
	public static String FARM2_CUSTOM_MESSAGE;
	public static String PVP1_CUSTOM_MESSAGE;
	public static String PVP2_CUSTOM_MESSAGE;
     + public static boolean RES_COMMAND;
     + public static int RES_ITEM;
     + public static int RES_COUNT;


	FARM1_CUSTOM_MESSAGE = L2JFrozenSettings.getProperty("Farm1CustomMeesage", "You have been teleported to Farm Zone 1!");
	FARM2_CUSTOM_MESSAGE = L2JFrozenSettings.getProperty("Farm2CustomMeesage", "You have been teleported to Farm Zone 2!");
	PVP1_CUSTOM_MESSAGE = L2JFrozenSettings.getProperty("PvP1CustomMeesage", "You have been teleported to PvP Zone 1!");
	PVP2_CUSTOM_MESSAGE = L2JFrozenSettings.getProperty("PvP2CustomMeesage", "You have been teleported to PvP Zone 2!");
 +	RES_COMMAND = Boolean.parseBoolean(L2JFrozenSettings.getProperty("ResCommandEnabled", "False"));
 +	RES_ITEM  = Integer.parseInt(L2JFrozenSettings.getProperty("ResItem", "57"));
 +	RES_COUNT = Integer.parseInt(L2JFrozenSettings.getProperty("ResAmount", "1"));

Index: java/config/l2jmods.properties
===================================================================
--- java/config/functions/l2jfrozen.properties
+++ java/config/functions/l2jfrozen.properties


# Allows user to use command .online
# Displays The Number of The Players That are Currently Online.
# Default : False
AllowOnlineView = False

#Allow user to use command.res
#Resurrects a corpse. In addition, restores about 30 percent of Exp.
ResCommandEnabled = False
#Id of Item Need When user use .res command
ResItem = 57

#Ammount Of Item.
ResAmount = 1

Index: java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/Res.java
===================================================================
--- java/com/l2j/frozen/gameserver/handler/voicedcommandhandlers/Res.java
+++ java/net/sf/l2j/gameserver/handler/voicedcommandhandlers/Res.java

/* 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 2, 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, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 * 02111-1307, USA.
 *
 * http://www.gnu.org/copyleft/gpl.html
 */
package com.l2jfrozen.gameserver.handler.voicedcommandhandlers;

import com.l2jfrozen.Config;
import com.l2jfrozen.gameserver.handler.IVoicedCommandHandler;
import com.l2jfrozen.gameserver.managers.CastleManager;
import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;


public class Res implements IVoicedCommandHandler
{
    private static final String[] VOICED_COMMANDS = { "res" };

    public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target)
    {   
        if (command.equalsIgnoreCase("res"))
        {
              if (!activeChar.isAlikeDead())
              {
                 activeChar.sendMessage("You cannot be ressurected while alive.");
                 return false;
              }
           if(activeChar.getClan() != null
                      && CastleManager.getInstance().getCastleByOwner(activeChar.getClan()) != null
                      && CastleManager.getInstance().getCastleByOwner(activeChar.getClan()).getSiege().getIsInProgress())
                {
            	  activeChar.sendMessage("You cannot use this feature during Siege.");
                  return false;
                }
           if(activeChar.isInOlympiadMode())
           {
              activeChar.sendMessage("You cannot use this feature during olympiad.");
             return false;
           }
           if(activeChar.getInventory().getItemByItemId(Config.RES_ITEM) == null)
           {
              activeChar.sendMessage("You Cant Use This Command without Some Items.");
             return false;
           }
           
           
           
              activeChar.sendMessage("You have been ressurected!");
              activeChar.getInventory().destroyItemByItemId("RessSystem", Config.RES_ITEM, Config.RES_COUNT, activeChar, activeChar.getTarget());
              activeChar.doRevive();
              activeChar.getInventory().updateDatabase();
              activeChar.broadcastUserInfo();
              activeChar.sendMessage("Item has dissapeared! Thank you!");
        }
       return true;
    }
    public String[] getVoicedCommandList()
    {
        return VOICED_COMMANDS;
    }
}

Recommended Posts

  • 0
Posted (edited)

i have made everyting there and all imports is done but still when i go compile they say me build failed

i think that code you give me is wrong

Edited by haskovo
  • 0
Posted

Eclipse always shows what's wrong... for example:

    [javac] D:\Development\WORKSPACE-JAVA\aCis_gameserver\java\net\sf\l2j\gameserver\model\actor\instance\L2BufferInstance.java:256: error: cannot find symbol
    [javac] 			sb.apped("<font color=\"LEVEL\">You haven't created any scheme.</font>");
    [javac] 			  ^
    [javac]   symbol:   method apped(String)
    [javac]   location: variable sb of type StringBuilder
    [javac] 1 error
    [javac] 6 warnings

BUILD FAILED

Don't look at the warnings, look for errors.

  • 0
Posted (edited)

Where have you paste the Map<Integer, Long> commandUsages = new ConcurrentHashMap<>(); line ? Also, you can make it static.

Edited by SweeTs
  • 0
Posted
/* 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 2, 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, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 * 02111-1307, USA.
 *
 * http://www.gnu.org/copyleft/gpl.html
 */
package com.l2jfrozen.gameserver.handler.voicedcommandhandlers;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;

import com.l2jfrozen.Config;
import com.l2jfrozen.gameserver.handler.IVoicedCommandHandler;
import com.l2jfrozen.gameserver.managers.CastleManager;
import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;


public class Res implements IVoicedCommandHandler
{
    private static final String[] VOICED_COMMANDS = { "res" };
    Map<Integer, Long> commandUsages = new ConcurrentHashMap<>(); 
    @Override
	public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target)
    {   
        if (command.equalsIgnoreCase("res"))
        {
              if (!activeChar.isAlikeDead())
              {
                 activeChar.sendMessage("You cannot be ressurected while alive.");
                 return false;
              }
           if(activeChar.getClan() != null
                      && CastleManager.getInstance().getCastleByOwner(activeChar.getClan()) != null
                      && CastleManager.getInstance().getCastleByOwner(activeChar.getClan()).getSiege().getIsInProgress())
                {
            	  activeChar.sendMessage("You cannot use this feature during Siege.");
                  return false;
                }
           if(activeChar.isInOlympiadMode())
           {
              activeChar.sendMessage("You cannot use this feature during olympiad.");
             return false;
           }
           if(activeChar.getInventory().getItemByItemId(Config.RES_ITEM) == null)
           {
              activeChar.sendMessage("You Cant Use This Command without Some Items.");
             return false;
           }
           long currentTime = System.currentTimeMillis();
           if(commandUsages.getOrDefault(activeChar.getObjectId(), 0L) > currentTime)
        	{
        	   activeChar.sendMessage("You cannot use it so often!");
        	   return false;
        	}
           
           
           commandUsages.put(activeChar.getObjectId(), currentTime + TimeUnit.MINUTES.toMillis(5L));
              activeChar.sendMessage("You have been ressurected!");
              activeChar.getInventory().destroyItemByItemId("RessSystem", Config.RES_ITEM, Config.RES_COUNT, activeChar, activeChar.getTarget());
              activeChar.doRevive();
              activeChar.getInventory().updateDatabase();
              activeChar.broadcastUserInfo();
              activeChar.sendMessage("One Gold Bar has dissapeared! Thank you!");
        }
       return true;
    }
    @Override
	public String[] getVoicedCommandList()
    {
        return VOICED_COMMANDS;
    }
}

what to edit?

  • 0
Posted

Move it OUT of the method and you can add static.

 

 

static Map<Integer, Long> commandUsages = new ConcurrentHashMap<>();
  • 0
Posted

You can reuse floodprotector implementation to avoid to add more of pointless crap.

Yes, but then you have to create a config for that, so well, I'm not sure which way is 'better' :P

 

 

       if (!FloodProtectors.performAction(activeChar.getClient(), Action.ROLL_DICE))
        {
            activeChar.sendMessage("You can't use it so often.");
            return false;
        }
Guest
This topic is now closed to further replies.



  • Posts

    • Hello dude, i can help u out, i reached to u via DM, my studio is https://gh0tstudio.com i have worked with almost 40 brands on developing Private Lineage and Mu online servers, dashboard for vote pages and more. I sent u some examples too
    • L2 TARTARUS - HTML DESIGN       L2 KOMBAT - ANIMATED BORDER   L2 SERENITY - ANIMATED LOGO   L2 ARCANE - COMMUNITY BOARD     L2 AMERIKA - ADVERTISING BANNER   L2 ZERON - ADVERTISING BANNER  
    • SOCNET — 生日快乐! 感谢您一直陪伴我们! 为期一周的礼物、奖励和折扣盛宴! 今天我们庆祝SOCNET项目的生日——而礼物属于您! 我们为所有服务准备了超强优惠: ⭐ SOCNET STORE — 商店 (网站/Telegram) 1. 优惠码BIRTHDAY — 20%折扣 可用于购买任何商品! 2. 大额购买礼品 在任意商品上消费$200,即可任选一件价值不超过$10的商品——免费赠送! 3. 在我们商店主题帖中发表评论可获赠余额 "Happy Birthday, SOCNET. My username/email is":BHW、BFD、voided、nulled 和 patched 论坛。 ➡ 1个论坛 = $1余额! 通过下方提供的联系方式将帖子截图发送给客服,附上您的登录名/邮箱,即可领取奖励。 ⭐ SOCNET SMM 面板 1. 充值 = 奖励 充值$100并获得+$5余额。 充值后请在面板内创建工单。 2. 在我们的 SMM 面板主题帖中发表评论可获赠余额 "Happy Birthday, SOCNET. My username/email is":BHW、BFD、voided、nulled 和 patched 论坛。 ➡ 1个论坛 = $1余额! 通过下方提供的联系方式将帖子截图发送给客服,附上您的登录名/邮箱,即可领取奖励。 ⭐SOCNET STARS — Telegram Stars/Premium 购买机器人 1. 大额购买 = 巨额奖励 单笔购买>1000 Stars,即可获赠+100 Stars! 购买后请联系支持。 2. 在我们 Stars 购买机器人的主题帖中发表评论可获赠余额 "Happy Birthday, SOCNET. My username/email is":BHW、BFD、voided、nulled 和 patched 论坛。 发表评论: ➡ 1个论坛 = +50 Stars余额! 通过下方提供的联系方式将帖子截图发送给客服,附上您的登录名/邮箱,即可领取奖励。 ⭐SOCNET SMS 虚拟号码服务 1. 充值赠送奖励 充值$50即可获赠+$10。 充值后只需联系支持即可。 2. 在我们的 SMS 服务主题帖中发表评论可获赠余额 "Happy Birthday, SOCNET. My username/email is":BHW、BFD、voided、nulled 和 patched 论坛。 ➡ 1个论坛 = $1余额! 通过下方提供的联系方式将帖子截图发送给客服,附上您的登录名/邮箱,即可领取奖励。 让我们一起庆祝吧! 活动有效期为2025年12月02日至12月07日(含)。 不要错过——这是全年最优惠的条件! 新闻: ➡ Telegram 频道: https://t.me/accsforyou_shop ➡ WhatsApp 频道: https://chat.whatsapp.com/K8rBy500nA73z27PxgaJUw?mode=ems_copy_t ➡ Discord 服务器: https://discord.gg/y9AStFFsrh 联系方式 & 支持: ➡ Telegram: https://t.me/socnet_support ➡ WhatsApp: https://wa.me/79051904467 ➡ Discord: socnet_support ➡ ✉ Email: solomonbog@socnet.store
    • SOCNET — 生日快乐! 感谢您一直陪伴我们! 为期一周的礼物、奖励和折扣盛宴! 今天我们庆祝SOCNET项目的生日——而礼物属于您! 我们为所有服务准备了超强优惠: ⭐ SOCNET STORE — 商店 (网站/Telegram) 1. 优惠码BIRTHDAY — 20%折扣 可用于购买任何商品! 2. 大额购买礼品 在任意商品上消费$200,即可任选一件价值不超过$10的商品——免费赠送! 3. 在我们商店主题帖中发表评论可获赠余额 "Happy Birthday, SOCNET. My username/email is":BHW、BFD、voided、nulled 和 patched 论坛。 ➡ 1个论坛 = $1余额! 通过下方提供的联系方式将帖子截图发送给客服,附上您的登录名/邮箱,即可领取奖励。 ⭐ SOCNET SMM 面板 1. 充值 = 奖励 充值$100并获得+$5余额。 充值后请在面板内创建工单。 2. 在我们的 SMM 面板主题帖中发表评论可获赠余额 "Happy Birthday, SOCNET. My username/email is":BHW、BFD、voided、nulled 和 patched 论坛。 ➡ 1个论坛 = $1余额! 通过下方提供的联系方式将帖子截图发送给客服,附上您的登录名/邮箱,即可领取奖励。 ⭐SOCNET STARS — Telegram Stars/Premium 购买机器人 1. 大额购买 = 巨额奖励 单笔购买>1000 Stars,即可获赠+100 Stars! 购买后请联系支持。 2. 在我们 Stars 购买机器人的主题帖中发表评论可获赠余额 "Happy Birthday, SOCNET. My username/email is":BHW、BFD、voided、nulled 和 patched 论坛。 发表评论: ➡ 1个论坛 = +50 Stars余额! 通过下方提供的联系方式将帖子截图发送给客服,附上您的登录名/邮箱,即可领取奖励。 ⭐SOCNET SMS 虚拟号码服务 1. 充值赠送奖励 充值$50即可获赠+$10。 充值后只需联系支持即可。 2. 在我们的 SMS 服务主题帖中发表评论可获赠余额 "Happy Birthday, SOCNET. My username/email is":BHW、BFD、voided、nulled 和 patched 论坛。 ➡ 1个论坛 = $1余额! 通过下方提供的联系方式将帖子截图发送给客服,附上您的登录名/邮箱,即可领取奖励。 让我们一起庆祝吧! 活动有效期为2025年12月02日至12月07日(含)。 不要错过——这是全年最优惠的条件! 新闻: ➡ Telegram 频道: https://t.me/accsforyou_shop ➡ WhatsApp 频道: https://chat.whatsapp.com/K8rBy500nA73z27PxgaJUw?mode=ems_copy_t ➡ Discord 服务器: https://discord.gg/y9AStFFsrh 联系方式 & 支持: ➡ Telegram: https://t.me/socnet_support ➡ WhatsApp: https://wa.me/79051904467 ➡ Discord: socnet_support ➡ ✉ Email: solomonbog@socnet.store
    • SOCNET — 生日快乐! 感谢您一直陪伴我们! 为期一周的礼物、奖励和折扣盛宴! 今天我们庆祝SOCNET项目的生日——而礼物属于您! 我们为所有服务准备了超强优惠: ⭐ SOCNET STORE — 商店 (网站/Telegram) 1. 优惠码BIRTHDAY — 20%折扣 可用于购买任何商品! 2. 大额购买礼品 在任意商品上消费$200,即可任选一件价值不超过$10的商品——免费赠送! 3. 在我们商店主题帖中发表评论可获赠余额 "Happy Birthday, SOCNET. My username/email is":BHW、BFD、voided、nulled 和 patched 论坛。 ➡ 1个论坛 = $1余额! 通过下方提供的联系方式将帖子截图发送给客服,附上您的登录名/邮箱,即可领取奖励。 ⭐ SOCNET SMM 面板 1. 充值 = 奖励 充值$100并获得+$5余额。 充值后请在面板内创建工单。 2. 在我们的 SMM 面板主题帖中发表评论可获赠余额 "Happy Birthday, SOCNET. My username/email is":BHW、BFD、voided、nulled 和 patched 论坛。 ➡ 1个论坛 = $1余额! 通过下方提供的联系方式将帖子截图发送给客服,附上您的登录名/邮箱,即可领取奖励。 ⭐SOCNET STARS — Telegram Stars/Premium 购买机器人 1. 大额购买 = 巨额奖励 单笔购买>1000 Stars,即可获赠+100 Stars! 购买后请联系支持。 2. 在我们 Stars 购买机器人的主题帖中发表评论可获赠余额 "Happy Birthday, SOCNET. My username/email is":BHW、BFD、voided、nulled 和 patched 论坛。 发表评论: ➡ 1个论坛 = +50 Stars余额! 通过下方提供的联系方式将帖子截图发送给客服,附上您的登录名/邮箱,即可领取奖励。 ⭐SOCNET SMS 虚拟号码服务 1. 充值赠送奖励 充值$50即可获赠+$10。 充值后只需联系支持即可。 2. 在我们的 SMS 服务主题帖中发表评论可获赠余额 "Happy Birthday, SOCNET. My username/email is":BHW、BFD、voided、nulled 和 patched 论坛。 ➡ 1个论坛 = $1余额! 通过下方提供的联系方式将帖子截图发送给客服,附上您的登录名/邮箱,即可领取奖励。 让我们一起庆祝吧! 活动有效期为2025年12月02日至12月07日(含)。 不要错过——这是全年最优惠的条件! 新闻: ➡ Telegram 频道: https://t.me/accsforyou_shop ➡ WhatsApp 频道: https://chat.whatsapp.com/K8rBy500nA73z27PxgaJUw?mode=ems_copy_t ➡ Discord 服务器: https://discord.gg/y9AStFFsrh 联系方式 & 支持: ➡ Telegram: https://t.me/socnet_support ➡ WhatsApp: https://wa.me/79051904467 ➡ Discord: socnet_support ➡ ✉ Email: solomonbog@socnet.store
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock