Simplified flood protector methods.
This commit is contained in:
@@ -24,13 +24,6 @@ FloodProtectorRollDicePunishmentLimit = 0
|
|||||||
FloodProtectorRollDicePunishmentType = none
|
FloodProtectorRollDicePunishmentType = none
|
||||||
FloodProtectorRollDicePunishmentTime = 0
|
FloodProtectorRollDicePunishmentTime = 0
|
||||||
|
|
||||||
# Firework - firework flooding
|
|
||||||
FloodProtectorFireworkInterval = 42
|
|
||||||
FloodProtectorFireworkLogFlooding = False
|
|
||||||
FloodProtectorFireworkPunishmentLimit = 0
|
|
||||||
FloodProtectorFireworkPunishmentType = none
|
|
||||||
FloodProtectorFireworkPunishmentTime = 0
|
|
||||||
|
|
||||||
# ItemPetSummon - item summoning and pet mounting flooding
|
# ItemPetSummon - item summoning and pet mounting flooding
|
||||||
FloodProtectorItemPetSummonInterval = 16
|
FloodProtectorItemPetSummonInterval = 16
|
||||||
FloodProtectorItemPetSummonLogFlooding = False
|
FloodProtectorItemPetSummonLogFlooding = False
|
||||||
@@ -94,13 +87,6 @@ FloodProtectorManufacturePunishmentLimit = 0
|
|||||||
FloodProtectorManufacturePunishmentType = none
|
FloodProtectorManufacturePunishmentType = none
|
||||||
FloodProtectorManufacturePunishmentTime = 0
|
FloodProtectorManufacturePunishmentTime = 0
|
||||||
|
|
||||||
# Manor
|
|
||||||
FloodProtectorManorInterval = 30
|
|
||||||
FloodProtectorManorLogFlooding = False
|
|
||||||
FloodProtectorManorPunishmentLimit = 0
|
|
||||||
FloodProtectorManorPunishmentType = none
|
|
||||||
FloodProtectorManorPunishmentTime = 0
|
|
||||||
|
|
||||||
# SendMail - sending mail interval, 10s on retail
|
# SendMail - sending mail interval, 10s on retail
|
||||||
FloodProtectorSendMailInterval = 100
|
FloodProtectorSendMailInterval = 100
|
||||||
FloodProtectorSendMailLogFlooding = False
|
FloodProtectorSendMailLogFlooding = False
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ public class ItemAuctionLink implements IBypassHandler
|
|||||||
final String cmd = st.nextToken();
|
final String cmd = st.nextToken();
|
||||||
if ("show".equalsIgnoreCase(cmd))
|
if ("show".equalsIgnoreCase(cmd))
|
||||||
{
|
{
|
||||||
if (!player.getFloodProtectors().getItemAuction().tryPerformAction("RequestInfoItemAuction"))
|
if (!player.getClient().getFloodProtectors().canUseItemAuction())
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ public class ChatHeroVoice implements IChatHandler
|
|||||||
activeChar.sendPacket(SystemMessageId.CHATTING_IS_CURRENTLY_PROHIBITED);
|
activeChar.sendPacket(SystemMessageId.CHATTING_IS_CURRENTLY_PROHIBITED);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!activeChar.getFloodProtectors().getHeroVoice().tryPerformAction("hero voice"))
|
if (!activeChar.getClient().getFloodProtectors().canUseHeroVoice())
|
||||||
{
|
{
|
||||||
activeChar.sendMessage("Action failed. Heroes are only able to speak in the global channel once every 10 seconds.");
|
activeChar.sendMessage("Action failed. Heroes are only able to speak in the global channel once every 10 seconds.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ public class ChatShout implements IChatHandler
|
|||||||
}
|
}
|
||||||
else if (Config.DEFAULT_GLOBAL_CHAT.equalsIgnoreCase("global"))
|
else if (Config.DEFAULT_GLOBAL_CHAT.equalsIgnoreCase("global"))
|
||||||
{
|
{
|
||||||
if (!activeChar.canOverrideCond(PlayerCondOverride.CHAT_CONDITIONS) && !activeChar.getFloodProtectors().getGlobalChat().tryPerformAction("global chat"))
|
if (!activeChar.canOverrideCond(PlayerCondOverride.CHAT_CONDITIONS) && !activeChar.getClient().getFloodProtectors().canUseGlobalChat())
|
||||||
{
|
{
|
||||||
activeChar.sendMessage("Do not spam shout channel.");
|
activeChar.sendMessage("Do not spam shout channel.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ public class ChatTrade implements IChatHandler
|
|||||||
}
|
}
|
||||||
else if (Config.DEFAULT_TRADE_CHAT.equalsIgnoreCase("global"))
|
else if (Config.DEFAULT_TRADE_CHAT.equalsIgnoreCase("global"))
|
||||||
{
|
{
|
||||||
if (!activeChar.canOverrideCond(PlayerCondOverride.CHAT_CONDITIONS) && !activeChar.getFloodProtectors().getGlobalChat().tryPerformAction("global chat"))
|
if (!activeChar.canOverrideCond(PlayerCondOverride.CHAT_CONDITIONS) && !activeChar.getClient().getFloodProtectors().canUseGlobalChat())
|
||||||
{
|
{
|
||||||
activeChar.sendMessage("Do not spam trade channel.");
|
activeChar.sendMessage("Do not spam trade channel.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -84,14 +84,10 @@ public class RollingDice implements IItemHandler
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param player
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
private int rollDice(PlayerInstance player)
|
private int rollDice(PlayerInstance player)
|
||||||
{
|
{
|
||||||
// Check if the dice is ready
|
// Check if the dice is ready
|
||||||
if (!player.getFloodProtectors().getRollDice().tryPerformAction("roll dice"))
|
if (!player.getClient().getFloodProtectors().canRollDice())
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ public class SummonItems extends ItemSkillsTemplate
|
|||||||
}
|
}
|
||||||
|
|
||||||
final PlayerInstance player = playable.getActingPlayer();
|
final PlayerInstance player = playable.getActingPlayer();
|
||||||
if (!player.getFloodProtectors().getItemPetSummon().tryPerformAction("summon items") || (player.getBlockCheckerArena() != -1) || player.inObserverMode() || player.isAllSkillsDisabled() || player.isCastingNow())
|
if (!player.getClient().getFloodProtectors().canUsePetSummonItem() || (player.getBlockCheckerArena() != -1) || player.inObserverMode() || player.isAllSkillsDisabled() || player.isCastingNow())
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -599,7 +599,6 @@ public class Config
|
|||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
public static FloodProtectorConfig FLOOD_PROTECTOR_USE_ITEM;
|
public static FloodProtectorConfig FLOOD_PROTECTOR_USE_ITEM;
|
||||||
public static FloodProtectorConfig FLOOD_PROTECTOR_ROLL_DICE;
|
public static FloodProtectorConfig FLOOD_PROTECTOR_ROLL_DICE;
|
||||||
public static FloodProtectorConfig FLOOD_PROTECTOR_FIREWORK;
|
|
||||||
public static FloodProtectorConfig FLOOD_PROTECTOR_ITEM_PET_SUMMON;
|
public static FloodProtectorConfig FLOOD_PROTECTOR_ITEM_PET_SUMMON;
|
||||||
public static FloodProtectorConfig FLOOD_PROTECTOR_HERO_VOICE;
|
public static FloodProtectorConfig FLOOD_PROTECTOR_HERO_VOICE;
|
||||||
public static FloodProtectorConfig FLOOD_PROTECTOR_GLOBAL_CHAT;
|
public static FloodProtectorConfig FLOOD_PROTECTOR_GLOBAL_CHAT;
|
||||||
@@ -609,7 +608,6 @@ public class Config
|
|||||||
public static FloodProtectorConfig FLOOD_PROTECTOR_MULTISELL;
|
public static FloodProtectorConfig FLOOD_PROTECTOR_MULTISELL;
|
||||||
public static FloodProtectorConfig FLOOD_PROTECTOR_TRANSACTION;
|
public static FloodProtectorConfig FLOOD_PROTECTOR_TRANSACTION;
|
||||||
public static FloodProtectorConfig FLOOD_PROTECTOR_MANUFACTURE;
|
public static FloodProtectorConfig FLOOD_PROTECTOR_MANUFACTURE;
|
||||||
public static FloodProtectorConfig FLOOD_PROTECTOR_MANOR;
|
|
||||||
public static FloodProtectorConfig FLOOD_PROTECTOR_SENDMAIL;
|
public static FloodProtectorConfig FLOOD_PROTECTOR_SENDMAIL;
|
||||||
public static FloodProtectorConfig FLOOD_PROTECTOR_CHARACTER_SELECT;
|
public static FloodProtectorConfig FLOOD_PROTECTOR_CHARACTER_SELECT;
|
||||||
public static FloodProtectorConfig FLOOD_PROTECTOR_ITEM_AUCTION;
|
public static FloodProtectorConfig FLOOD_PROTECTOR_ITEM_AUCTION;
|
||||||
@@ -1346,7 +1344,6 @@ public class Config
|
|||||||
{
|
{
|
||||||
FLOOD_PROTECTOR_USE_ITEM = new FloodProtectorConfig("UseItemFloodProtector");
|
FLOOD_PROTECTOR_USE_ITEM = new FloodProtectorConfig("UseItemFloodProtector");
|
||||||
FLOOD_PROTECTOR_ROLL_DICE = new FloodProtectorConfig("RollDiceFloodProtector");
|
FLOOD_PROTECTOR_ROLL_DICE = new FloodProtectorConfig("RollDiceFloodProtector");
|
||||||
FLOOD_PROTECTOR_FIREWORK = new FloodProtectorConfig("FireworkFloodProtector");
|
|
||||||
FLOOD_PROTECTOR_ITEM_PET_SUMMON = new FloodProtectorConfig("ItemPetSummonFloodProtector");
|
FLOOD_PROTECTOR_ITEM_PET_SUMMON = new FloodProtectorConfig("ItemPetSummonFloodProtector");
|
||||||
FLOOD_PROTECTOR_HERO_VOICE = new FloodProtectorConfig("HeroVoiceFloodProtector");
|
FLOOD_PROTECTOR_HERO_VOICE = new FloodProtectorConfig("HeroVoiceFloodProtector");
|
||||||
FLOOD_PROTECTOR_GLOBAL_CHAT = new FloodProtectorConfig("GlobalChatFloodProtector");
|
FLOOD_PROTECTOR_GLOBAL_CHAT = new FloodProtectorConfig("GlobalChatFloodProtector");
|
||||||
@@ -1356,7 +1353,6 @@ public class Config
|
|||||||
FLOOD_PROTECTOR_MULTISELL = new FloodProtectorConfig("MultiSellFloodProtector");
|
FLOOD_PROTECTOR_MULTISELL = new FloodProtectorConfig("MultiSellFloodProtector");
|
||||||
FLOOD_PROTECTOR_TRANSACTION = new FloodProtectorConfig("TransactionFloodProtector");
|
FLOOD_PROTECTOR_TRANSACTION = new FloodProtectorConfig("TransactionFloodProtector");
|
||||||
FLOOD_PROTECTOR_MANUFACTURE = new FloodProtectorConfig("ManufactureFloodProtector");
|
FLOOD_PROTECTOR_MANUFACTURE = new FloodProtectorConfig("ManufactureFloodProtector");
|
||||||
FLOOD_PROTECTOR_MANOR = new FloodProtectorConfig("ManorFloodProtector");
|
|
||||||
FLOOD_PROTECTOR_SENDMAIL = new FloodProtectorConfig("SendMailFloodProtector");
|
FLOOD_PROTECTOR_SENDMAIL = new FloodProtectorConfig("SendMailFloodProtector");
|
||||||
FLOOD_PROTECTOR_CHARACTER_SELECT = new FloodProtectorConfig("CharacterSelectFloodProtector");
|
FLOOD_PROTECTOR_CHARACTER_SELECT = new FloodProtectorConfig("CharacterSelectFloodProtector");
|
||||||
FLOOD_PROTECTOR_ITEM_AUCTION = new FloodProtectorConfig("ItemAuctionFloodProtector");
|
FLOOD_PROTECTOR_ITEM_AUCTION = new FloodProtectorConfig("ItemAuctionFloodProtector");
|
||||||
@@ -3665,7 +3661,6 @@ public class Config
|
|||||||
{
|
{
|
||||||
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_USE_ITEM, "UseItem", 4);
|
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_USE_ITEM, "UseItem", 4);
|
||||||
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_ROLL_DICE, "RollDice", 42);
|
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_ROLL_DICE, "RollDice", 42);
|
||||||
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_FIREWORK, "Firework", 42);
|
|
||||||
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_ITEM_PET_SUMMON, "ItemPetSummon", 16);
|
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_ITEM_PET_SUMMON, "ItemPetSummon", 16);
|
||||||
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_HERO_VOICE, "HeroVoice", 100);
|
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_HERO_VOICE, "HeroVoice", 100);
|
||||||
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_GLOBAL_CHAT, "GlobalChat", 5);
|
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_GLOBAL_CHAT, "GlobalChat", 5);
|
||||||
@@ -3675,7 +3670,6 @@ public class Config
|
|||||||
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_MULTISELL, "MultiSell", 1);
|
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_MULTISELL, "MultiSell", 1);
|
||||||
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_TRANSACTION, "Transaction", 10);
|
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_TRANSACTION, "Transaction", 10);
|
||||||
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_MANUFACTURE, "Manufacture", 3);
|
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_MANUFACTURE, "Manufacture", 3);
|
||||||
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_MANOR, "Manor", 30);
|
|
||||||
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_SENDMAIL, "SendMail", 100);
|
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_SENDMAIL, "SendMail", 100);
|
||||||
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_CHARACTER_SELECT, "CharacterSelect", 30);
|
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_CHARACTER_SELECT, "CharacterSelect", 30);
|
||||||
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_ITEM_AUCTION, "ItemAuction", 9);
|
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_ITEM_AUCTION, "ItemAuction", 9);
|
||||||
|
|||||||
@@ -346,7 +346,6 @@ import org.l2jmobius.gameserver.taskmanager.PlayerAutoSaveTaskManager;
|
|||||||
import org.l2jmobius.gameserver.taskmanager.PvpFlagTaskManager;
|
import org.l2jmobius.gameserver.taskmanager.PvpFlagTaskManager;
|
||||||
import org.l2jmobius.gameserver.util.Broadcast;
|
import org.l2jmobius.gameserver.util.Broadcast;
|
||||||
import org.l2jmobius.gameserver.util.EnumIntBitmask;
|
import org.l2jmobius.gameserver.util.EnumIntBitmask;
|
||||||
import org.l2jmobius.gameserver.util.FloodProtectors;
|
|
||||||
import org.l2jmobius.gameserver.util.Util;
|
import org.l2jmobius.gameserver.util.Util;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -11965,11 +11964,6 @@ public class PlayerInstance extends Playable
|
|||||||
return _isInHideoutSiege;
|
return _isInHideoutSiege;
|
||||||
}
|
}
|
||||||
|
|
||||||
public FloodProtectors getFloodProtectors()
|
|
||||||
{
|
|
||||||
return _client.getFloodProtectors();
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isFlyingMounted()
|
public boolean isFlyingMounted()
|
||||||
{
|
{
|
||||||
return checkTransformed(Transform::isFlying);
|
return checkTransformed(Transform::isFlying);
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ public class Action implements IClientIncomingPacket
|
|||||||
@Override
|
@Override
|
||||||
public void run(GameClient client)
|
public void run(GameClient client)
|
||||||
{
|
{
|
||||||
if (!client.getFloodProtectors().getPlayerAction().tryPerformAction("PlayerAction"))
|
if (!client.getFloodProtectors().canPerformPlayerAction())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ public class AttackRequest implements IClientIncomingPacket
|
|||||||
@Override
|
@Override
|
||||||
public void run(GameClient client)
|
public void run(GameClient client)
|
||||||
{
|
{
|
||||||
if (!client.getFloodProtectors().getPlayerAction().tryPerformAction("PlayerAction"))
|
if (!client.getFloodProtectors().canPerformPlayerAction())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ public class CharacterDelete implements IClientIncomingPacket
|
|||||||
@Override
|
@Override
|
||||||
public void run(GameClient client)
|
public void run(GameClient client)
|
||||||
{
|
{
|
||||||
// if (!client.getFloodProtectors().getCharacterSelect().tryPerformAction("CharacterDelete"))
|
// if (!client.getFloodProtectors().canSelectCharacter())
|
||||||
// {
|
// {
|
||||||
// client.sendPacket(new CharDeleteFail(CharacterDeleteFailType.UNKNOWN));
|
// client.sendPacket(new CharDeleteFail(CharacterDeleteFailType.UNKNOWN));
|
||||||
// return;
|
// return;
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ public class CharacterRestore implements IClientIncomingPacket
|
|||||||
@Override
|
@Override
|
||||||
public void run(GameClient client)
|
public void run(GameClient client)
|
||||||
{
|
{
|
||||||
if (!client.getFloodProtectors().getCharacterSelect().tryPerformAction("CharacterRestore"))
|
if (!client.getFloodProtectors().canSelectCharacter())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ public class CharacterSelect implements IClientIncomingPacket
|
|||||||
@Override
|
@Override
|
||||||
public void run(GameClient client)
|
public void run(GameClient client)
|
||||||
{
|
{
|
||||||
if (!client.getFloodProtectors().getCharacterSelect().tryPerformAction("CharacterSelect"))
|
if (!client.getFloodProtectors().canSelectCharacter())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ public class MultiSellChoose implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getMultiSell().tryPerformAction("multisell choose"))
|
if (!client.getFloodProtectors().canUseMultiSell())
|
||||||
{
|
{
|
||||||
player.setMultiSell(null);
|
player.setMultiSell(null);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ public class RequestBidItemAuction implements IClientIncomingPacket
|
|||||||
}
|
}
|
||||||
|
|
||||||
// can't use auction fp here
|
// can't use auction fp here
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("auction"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You are bidding too fast.");
|
player.sendMessage("You are bidding too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ public class RequestBuyItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("buy"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You are buying too fast.");
|
player.sendMessage("You are buying too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ public class RequestBuySeed implements IClientIncomingPacket
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (!client.getFloodProtectors().getManor().tryPerformAction("BuySeed"))
|
else if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You are buying seeds too fast!");
|
player.sendMessage("You are buying seeds too fast!");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ public class RequestBypassToServer implements IClientIncomingPacket
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getServerBypass().tryPerformAction(_command))
|
if (!client.getFloodProtectors().canUseServerBypass())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ public class RequestCancelPostAttachment implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("cancelpost"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ public class RequestCrystallizeItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (!client.getFloodProtectors().getTransaction().tryPerformAction("crystallize"))
|
// if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
// {
|
// {
|
||||||
// player.sendMessage("You are crystallizing too fast.");
|
// player.sendMessage("You are crystallizing too fast.");
|
||||||
// return;
|
// return;
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ public class RequestDestroyItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("destroy"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You are destroying items too fast.");
|
player.sendMessage("You are destroying items too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ public class RequestDropItem implements IClientIncomingPacket
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Flood protect drop to avoid packet lag
|
// Flood protect drop to avoid packet lag
|
||||||
if (!client.getFloodProtectors().getDropItem().tryPerformAction("drop item"))
|
if (!client.getFloodProtectors().canDropItem())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class RequestGetItemFromPet implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("getfrompet"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You get items from pet too fast.");
|
player.sendMessage("You get items from pet too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ public class RequestGiveItemToPet implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("giveitemtopet"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You are giving items to pet too fast.");
|
player.sendMessage("You are giving items to pet too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class RequestHennaEquip implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("HennaEquip"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ public class RequestHennaRemove implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("HennaRemove"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ public class RequestInfoItemAuction implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getItemAuction().tryPerformAction("RequestInfoItemAuction"))
|
if (!client.getFloodProtectors().canUseItemAuction())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ public class RequestPackageSend implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("deposit"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You depositing items too fast.");
|
player.sendMessage("You depositing items too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ public class RequestPetUseItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getUseItem().tryPerformAction("pet use item"))
|
if (!client.getFloodProtectors().canUseItem())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ public class RequestPostAttachment implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("getattach"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ public class RequestPreviewItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("buy"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You are buying too fast.");
|
player.sendMessage("You are buying too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ public class RequestPrivateStoreBuy implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("privatestorebuy"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You are buying items too fast.");
|
player.sendMessage("You are buying items too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ public class RequestPrivateStoreSell implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("privatestoresell"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You are selling items too fast.");
|
player.sendMessage("You are selling items too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ public class RequestRecipeBookDestroy implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("RecipeDestroy"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ public class RequestRecipeItemMakeSelf implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getManufacture().tryPerformAction("RecipeMakeSelf"))
|
if (!client.getFloodProtectors().canManufacture())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class RequestRecipeShopMakeItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getManufacture().tryPerformAction("RecipeShopMake"))
|
if (!client.getFloodProtectors().canManufacture())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ public class RequestRefundItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("refund"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You are using refund too fast.");
|
player.sendMessage("You are using refund too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ public class RequestRejectPostAttachment implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("rejectattach"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ public class RequestSellItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("buy"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You are buying too fast.");
|
player.sendMessage("You are buying too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -249,7 +249,7 @@ public class RequestSendPost implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getSendMail().tryPerformAction("sendmail"))
|
if (!client.getFloodProtectors().canSendMail())
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.THE_PREVIOUS_MAIL_WAS_FORWARDED_LESS_THAN_1_MINUTE_AGO_AND_THIS_CANNOT_BE_FORWARDED);
|
player.sendPacket(SystemMessageId.THE_PREVIOUS_MAIL_WAS_FORWARDED_LESS_THAN_1_MINUTE_AGO_AND_THIS_CANNOT_BE_FORWARDED);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ public class SendWareHouseDepositList implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("deposit"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You are depositing items too fast.");
|
player.sendMessage("You are depositing items too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ public class SendWareHouseWithDrawList implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("withdraw"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You are withdrawing items too fast.");
|
player.sendMessage("You are withdrawing items too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ public class TradeDone implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("trade"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You are trading too fast.");
|
player.sendMessage("You are trading too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ public class UseItem implements IClientIncomingPacket
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Flood protect UseItem
|
// Flood protect UseItem
|
||||||
if (!client.getFloodProtectors().getUseItem().tryPerformAction("use item"))
|
if (!client.getFloodProtectors().canUseItem())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ public class RequestCrystallizeEstimate implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (!client.getFloodProtectors().getTransaction().tryPerformAction("crystallize"))
|
// if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
// {
|
// {
|
||||||
// player.sendMessage("You are crystallizing too fast.");
|
// player.sendMessage("You are crystallizing too fast.");
|
||||||
// return;
|
// return;
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ public class RequestCrystallizeItemCancel implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (!client.getFloodProtectors().getTransaction().tryPerformAction("crystallize"))
|
// if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
// {
|
// {
|
||||||
// player.sendMessage("You are crystallizing too fast.");
|
// player.sendMessage("You are crystallizing too fast.");
|
||||||
// return;
|
// return;
|
||||||
|
|||||||
@@ -82,10 +82,9 @@ public class FloodProtectorAction
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks whether the request is flood protected or not.
|
* Checks whether the request is flood protected or not.
|
||||||
* @param command command issued or short command description
|
|
||||||
* @return true if action is allowed, otherwise false
|
* @return true if action is allowed, otherwise false
|
||||||
*/
|
*/
|
||||||
public boolean tryPerformAction(String command)
|
public boolean canPerformAction()
|
||||||
{
|
{
|
||||||
if ((_client.getPlayer() != null) && _client.getPlayer().canOverrideCond(PlayerCondOverride.FLOOD_CONDITIONS))
|
if ((_client.getPlayer() != null) && _client.getPlayer().canOverrideCond(PlayerCondOverride.FLOOD_CONDITIONS))
|
||||||
{
|
{
|
||||||
@@ -97,7 +96,7 @@ public class FloodProtectorAction
|
|||||||
{
|
{
|
||||||
if (_config.LOG_FLOODING && !_logged && LOGGER.isLoggable(Level.WARNING))
|
if (_config.LOG_FLOODING && !_logged && LOGGER.isLoggable(Level.WARNING))
|
||||||
{
|
{
|
||||||
log(" called command ", command, " ~", String.valueOf((_config.FLOOD_PROTECTION_INTERVAL - (_nextGameTick - curTick)) * GameTimeTaskManager.MILLIS_IN_TICK), " ms after previous command");
|
log(" called command ", _config.FLOOD_PROTECTOR_TYPE, " ~", String.valueOf((_config.FLOOD_PROTECTION_INTERVAL - (_nextGameTick - curTick)) * GameTimeTaskManager.MILLIS_IN_TICK), " ms after previous command");
|
||||||
_logged = true;
|
_logged = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,73 +25,20 @@ import org.l2jmobius.gameserver.network.GameClient;
|
|||||||
*/
|
*/
|
||||||
public class FloodProtectors
|
public class FloodProtectors
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* Use-item flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _useItem;
|
private final FloodProtectorAction _useItem;
|
||||||
/**
|
|
||||||
* Roll-dice flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _rollDice;
|
private final FloodProtectorAction _rollDice;
|
||||||
/**
|
|
||||||
* Firework flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _firework;
|
|
||||||
/**
|
|
||||||
* Item-pet-summon flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _itemPetSummon;
|
private final FloodProtectorAction _itemPetSummon;
|
||||||
/**
|
|
||||||
* Hero-voice flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _heroVoice;
|
private final FloodProtectorAction _heroVoice;
|
||||||
/**
|
|
||||||
* Global-chat flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _globalChat;
|
private final FloodProtectorAction _globalChat;
|
||||||
/**
|
|
||||||
* Subclass flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _subclass;
|
private final FloodProtectorAction _subclass;
|
||||||
/**
|
|
||||||
* Drop-item flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _dropItem;
|
private final FloodProtectorAction _dropItem;
|
||||||
/**
|
|
||||||
* Server-bypass flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _serverBypass;
|
private final FloodProtectorAction _serverBypass;
|
||||||
/**
|
|
||||||
* Multisell flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _multiSell;
|
private final FloodProtectorAction _multiSell;
|
||||||
/**
|
|
||||||
* Transaction flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _transaction;
|
private final FloodProtectorAction _transaction;
|
||||||
/**
|
|
||||||
* Manufacture flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _manufacture;
|
private final FloodProtectorAction _manufacture;
|
||||||
/**
|
|
||||||
* Manor flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _manor;
|
|
||||||
/**
|
|
||||||
* Send mail flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _sendMail;
|
private final FloodProtectorAction _sendMail;
|
||||||
/**
|
|
||||||
* Character Select protector
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _characterSelect;
|
private final FloodProtectorAction _characterSelect;
|
||||||
/**
|
|
||||||
* Item Auction
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _itemAuction;
|
private final FloodProtectorAction _itemAuction;
|
||||||
/**
|
|
||||||
* Player Action
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _playerAction;
|
private final FloodProtectorAction _playerAction;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -103,7 +50,6 @@ public class FloodProtectors
|
|||||||
super();
|
super();
|
||||||
_useItem = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_USE_ITEM);
|
_useItem = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_USE_ITEM);
|
||||||
_rollDice = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_ROLL_DICE);
|
_rollDice = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_ROLL_DICE);
|
||||||
_firework = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_FIREWORK);
|
|
||||||
_itemPetSummon = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_ITEM_PET_SUMMON);
|
_itemPetSummon = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_ITEM_PET_SUMMON);
|
||||||
_heroVoice = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_HERO_VOICE);
|
_heroVoice = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_HERO_VOICE);
|
||||||
_globalChat = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_GLOBAL_CHAT);
|
_globalChat = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_GLOBAL_CHAT);
|
||||||
@@ -113,162 +59,84 @@ public class FloodProtectors
|
|||||||
_multiSell = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_MULTISELL);
|
_multiSell = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_MULTISELL);
|
||||||
_transaction = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_TRANSACTION);
|
_transaction = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_TRANSACTION);
|
||||||
_manufacture = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_MANUFACTURE);
|
_manufacture = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_MANUFACTURE);
|
||||||
_manor = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_MANOR);
|
|
||||||
_sendMail = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_SENDMAIL);
|
_sendMail = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_SENDMAIL);
|
||||||
_characterSelect = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_CHARACTER_SELECT);
|
_characterSelect = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_CHARACTER_SELECT);
|
||||||
_itemAuction = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_ITEM_AUCTION);
|
_itemAuction = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_ITEM_AUCTION);
|
||||||
_playerAction = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_PLAYER_ACTION);
|
_playerAction = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_PLAYER_ACTION);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canUseItem()
|
||||||
* Returns {@link #_useItem}.
|
|
||||||
* @return {@link #_useItem}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getUseItem()
|
|
||||||
{
|
{
|
||||||
return _useItem;
|
return _useItem.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canRollDice()
|
||||||
* Returns {@link #_rollDice}.
|
|
||||||
* @return {@link #_rollDice}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getRollDice()
|
|
||||||
{
|
{
|
||||||
return _rollDice;
|
return _rollDice.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canUsePetSummonItem()
|
||||||
* Returns {@link #_firework}.
|
|
||||||
* @return {@link #_firework}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getFirework()
|
|
||||||
{
|
{
|
||||||
return _firework;
|
return _itemPetSummon.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canUseHeroVoice()
|
||||||
* Returns {@link #_itemPetSummon}.
|
|
||||||
* @return {@link #_itemPetSummon}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getItemPetSummon()
|
|
||||||
{
|
{
|
||||||
return _itemPetSummon;
|
return _heroVoice.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canUseGlobalChat()
|
||||||
* Returns {@link #_heroVoice}.
|
|
||||||
* @return {@link #_heroVoice}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getHeroVoice()
|
|
||||||
{
|
{
|
||||||
return _heroVoice;
|
return _globalChat.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canChangeSubclass()
|
||||||
* Returns {@link #_globalChat}.
|
|
||||||
* @return {@link #_globalChat}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getGlobalChat()
|
|
||||||
{
|
{
|
||||||
return _globalChat;
|
return _subclass.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canDropItem()
|
||||||
* Returns {@link #_subclass}.
|
|
||||||
* @return {@link #_subclass}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getSubclass()
|
|
||||||
{
|
{
|
||||||
return _subclass;
|
return _dropItem.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canUseServerBypass()
|
||||||
* Returns {@link #_dropItem}.
|
|
||||||
* @return {@link #_dropItem}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getDropItem()
|
|
||||||
{
|
{
|
||||||
return _dropItem;
|
return _serverBypass.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canUseMultiSell()
|
||||||
* Returns {@link #_serverBypass}.
|
|
||||||
* @return {@link #_serverBypass}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getServerBypass()
|
|
||||||
{
|
{
|
||||||
return _serverBypass;
|
return _multiSell.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canPerformTransaction()
|
||||||
* @return {@link #_multiSell}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getMultiSell()
|
|
||||||
{
|
{
|
||||||
return _multiSell;
|
return _transaction.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canManufacture()
|
||||||
* Returns {@link #_transaction}.
|
|
||||||
* @return {@link #_transaction}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getTransaction()
|
|
||||||
{
|
{
|
||||||
return _transaction;
|
return _manufacture.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canSendMail()
|
||||||
* Returns {@link #_manufacture}.
|
|
||||||
* @return {@link #_manufacture}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getManufacture()
|
|
||||||
{
|
{
|
||||||
return _manufacture;
|
return _sendMail.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canSelectCharacter()
|
||||||
* Returns {@link #_manor}.
|
|
||||||
* @return {@link #_manor}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getManor()
|
|
||||||
{
|
{
|
||||||
return _manor;
|
return _characterSelect.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canUseItemAuction()
|
||||||
* Returns {@link #_sendMail}.
|
|
||||||
* @return {@link #_sendMail}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getSendMail()
|
|
||||||
{
|
{
|
||||||
return _sendMail;
|
return _itemAuction.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canPerformPlayerAction()
|
||||||
* Returns {@link #_characterSelect}.
|
|
||||||
* @return {@link #_characterSelect}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getCharacterSelect()
|
|
||||||
{
|
{
|
||||||
return _characterSelect;
|
return _playerAction.canPerformAction();
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns {@link #_itemAuction}.
|
|
||||||
* @return {@link #_itemAuction}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getItemAuction()
|
|
||||||
{
|
|
||||||
return _itemAuction;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns {@link #_playerAction}.
|
|
||||||
* @return {@link #_playerAction}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getPlayerAction()
|
|
||||||
{
|
|
||||||
return _playerAction;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,13 +24,6 @@ FloodProtectorRollDicePunishmentLimit = 0
|
|||||||
FloodProtectorRollDicePunishmentType = none
|
FloodProtectorRollDicePunishmentType = none
|
||||||
FloodProtectorRollDicePunishmentTime = 0
|
FloodProtectorRollDicePunishmentTime = 0
|
||||||
|
|
||||||
# Firework - firework flooding
|
|
||||||
FloodProtectorFireworkInterval = 42
|
|
||||||
FloodProtectorFireworkLogFlooding = False
|
|
||||||
FloodProtectorFireworkPunishmentLimit = 0
|
|
||||||
FloodProtectorFireworkPunishmentType = none
|
|
||||||
FloodProtectorFireworkPunishmentTime = 0
|
|
||||||
|
|
||||||
# ItemPetSummon - item summoning and pet mounting flooding
|
# ItemPetSummon - item summoning and pet mounting flooding
|
||||||
FloodProtectorItemPetSummonInterval = 16
|
FloodProtectorItemPetSummonInterval = 16
|
||||||
FloodProtectorItemPetSummonLogFlooding = False
|
FloodProtectorItemPetSummonLogFlooding = False
|
||||||
@@ -94,13 +87,6 @@ FloodProtectorManufacturePunishmentLimit = 0
|
|||||||
FloodProtectorManufacturePunishmentType = none
|
FloodProtectorManufacturePunishmentType = none
|
||||||
FloodProtectorManufacturePunishmentTime = 0
|
FloodProtectorManufacturePunishmentTime = 0
|
||||||
|
|
||||||
# Manor
|
|
||||||
FloodProtectorManorInterval = 30
|
|
||||||
FloodProtectorManorLogFlooding = False
|
|
||||||
FloodProtectorManorPunishmentLimit = 0
|
|
||||||
FloodProtectorManorPunishmentType = none
|
|
||||||
FloodProtectorManorPunishmentTime = 0
|
|
||||||
|
|
||||||
# SendMail - sending mail interval, 10s on retail
|
# SendMail - sending mail interval, 10s on retail
|
||||||
FloodProtectorSendMailInterval = 100
|
FloodProtectorSendMailInterval = 100
|
||||||
FloodProtectorSendMailLogFlooding = False
|
FloodProtectorSendMailLogFlooding = False
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ public class ItemAuctionLink implements IBypassHandler
|
|||||||
final String cmd = st.nextToken();
|
final String cmd = st.nextToken();
|
||||||
if ("show".equalsIgnoreCase(cmd))
|
if ("show".equalsIgnoreCase(cmd))
|
||||||
{
|
{
|
||||||
if (!player.getFloodProtectors().getItemAuction().tryPerformAction("RequestInfoItemAuction"))
|
if (!player.getClient().getFloodProtectors().canUseItemAuction())
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ public class ChatHeroVoice implements IChatHandler
|
|||||||
activeChar.sendPacket(SystemMessageId.CHATTING_IS_CURRENTLY_PROHIBITED);
|
activeChar.sendPacket(SystemMessageId.CHATTING_IS_CURRENTLY_PROHIBITED);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!activeChar.getFloodProtectors().getHeroVoice().tryPerformAction("hero voice"))
|
if (!activeChar.getClient().getFloodProtectors().canUseHeroVoice())
|
||||||
{
|
{
|
||||||
activeChar.sendMessage("Action failed. Heroes are only able to speak in the global channel once every 10 seconds.");
|
activeChar.sendMessage("Action failed. Heroes are only able to speak in the global channel once every 10 seconds.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ public class ChatShout implements IChatHandler
|
|||||||
}
|
}
|
||||||
else if (Config.DEFAULT_GLOBAL_CHAT.equalsIgnoreCase("global"))
|
else if (Config.DEFAULT_GLOBAL_CHAT.equalsIgnoreCase("global"))
|
||||||
{
|
{
|
||||||
if (!activeChar.canOverrideCond(PlayerCondOverride.CHAT_CONDITIONS) && !activeChar.getFloodProtectors().getGlobalChat().tryPerformAction("global chat"))
|
if (!activeChar.canOverrideCond(PlayerCondOverride.CHAT_CONDITIONS) && !activeChar.getClient().getFloodProtectors().canUseGlobalChat())
|
||||||
{
|
{
|
||||||
activeChar.sendMessage("Do not spam shout channel.");
|
activeChar.sendMessage("Do not spam shout channel.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ public class ChatTrade implements IChatHandler
|
|||||||
}
|
}
|
||||||
else if (Config.DEFAULT_TRADE_CHAT.equalsIgnoreCase("global"))
|
else if (Config.DEFAULT_TRADE_CHAT.equalsIgnoreCase("global"))
|
||||||
{
|
{
|
||||||
if (!activeChar.canOverrideCond(PlayerCondOverride.CHAT_CONDITIONS) && !activeChar.getFloodProtectors().getGlobalChat().tryPerformAction("global chat"))
|
if (!activeChar.canOverrideCond(PlayerCondOverride.CHAT_CONDITIONS) && !activeChar.getClient().getFloodProtectors().canUseGlobalChat())
|
||||||
{
|
{
|
||||||
activeChar.sendMessage("Do not spam trade channel.");
|
activeChar.sendMessage("Do not spam trade channel.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -84,14 +84,10 @@ public class RollingDice implements IItemHandler
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param player
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
private int rollDice(PlayerInstance player)
|
private int rollDice(PlayerInstance player)
|
||||||
{
|
{
|
||||||
// Check if the dice is ready
|
// Check if the dice is ready
|
||||||
if (!player.getFloodProtectors().getRollDice().tryPerformAction("roll dice"))
|
if (!player.getClient().getFloodProtectors().canRollDice())
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ public class SummonItems extends ItemSkillsTemplate
|
|||||||
}
|
}
|
||||||
|
|
||||||
final PlayerInstance player = playable.getActingPlayer();
|
final PlayerInstance player = playable.getActingPlayer();
|
||||||
if (!player.getFloodProtectors().getItemPetSummon().tryPerformAction("summon items") || (player.getBlockCheckerArena() != -1) || player.inObserverMode() || player.isAllSkillsDisabled() || player.isCastingNow())
|
if (!player.getClient().getFloodProtectors().canUsePetSummonItem() || (player.getBlockCheckerArena() != -1) || player.inObserverMode() || player.isAllSkillsDisabled() || player.isCastingNow())
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -609,7 +609,6 @@ public class Config
|
|||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
public static FloodProtectorConfig FLOOD_PROTECTOR_USE_ITEM;
|
public static FloodProtectorConfig FLOOD_PROTECTOR_USE_ITEM;
|
||||||
public static FloodProtectorConfig FLOOD_PROTECTOR_ROLL_DICE;
|
public static FloodProtectorConfig FLOOD_PROTECTOR_ROLL_DICE;
|
||||||
public static FloodProtectorConfig FLOOD_PROTECTOR_FIREWORK;
|
|
||||||
public static FloodProtectorConfig FLOOD_PROTECTOR_ITEM_PET_SUMMON;
|
public static FloodProtectorConfig FLOOD_PROTECTOR_ITEM_PET_SUMMON;
|
||||||
public static FloodProtectorConfig FLOOD_PROTECTOR_HERO_VOICE;
|
public static FloodProtectorConfig FLOOD_PROTECTOR_HERO_VOICE;
|
||||||
public static FloodProtectorConfig FLOOD_PROTECTOR_GLOBAL_CHAT;
|
public static FloodProtectorConfig FLOOD_PROTECTOR_GLOBAL_CHAT;
|
||||||
@@ -619,7 +618,6 @@ public class Config
|
|||||||
public static FloodProtectorConfig FLOOD_PROTECTOR_MULTISELL;
|
public static FloodProtectorConfig FLOOD_PROTECTOR_MULTISELL;
|
||||||
public static FloodProtectorConfig FLOOD_PROTECTOR_TRANSACTION;
|
public static FloodProtectorConfig FLOOD_PROTECTOR_TRANSACTION;
|
||||||
public static FloodProtectorConfig FLOOD_PROTECTOR_MANUFACTURE;
|
public static FloodProtectorConfig FLOOD_PROTECTOR_MANUFACTURE;
|
||||||
public static FloodProtectorConfig FLOOD_PROTECTOR_MANOR;
|
|
||||||
public static FloodProtectorConfig FLOOD_PROTECTOR_SENDMAIL;
|
public static FloodProtectorConfig FLOOD_PROTECTOR_SENDMAIL;
|
||||||
public static FloodProtectorConfig FLOOD_PROTECTOR_CHARACTER_SELECT;
|
public static FloodProtectorConfig FLOOD_PROTECTOR_CHARACTER_SELECT;
|
||||||
public static FloodProtectorConfig FLOOD_PROTECTOR_ITEM_AUCTION;
|
public static FloodProtectorConfig FLOOD_PROTECTOR_ITEM_AUCTION;
|
||||||
@@ -1357,7 +1355,6 @@ public class Config
|
|||||||
{
|
{
|
||||||
FLOOD_PROTECTOR_USE_ITEM = new FloodProtectorConfig("UseItemFloodProtector");
|
FLOOD_PROTECTOR_USE_ITEM = new FloodProtectorConfig("UseItemFloodProtector");
|
||||||
FLOOD_PROTECTOR_ROLL_DICE = new FloodProtectorConfig("RollDiceFloodProtector");
|
FLOOD_PROTECTOR_ROLL_DICE = new FloodProtectorConfig("RollDiceFloodProtector");
|
||||||
FLOOD_PROTECTOR_FIREWORK = new FloodProtectorConfig("FireworkFloodProtector");
|
|
||||||
FLOOD_PROTECTOR_ITEM_PET_SUMMON = new FloodProtectorConfig("ItemPetSummonFloodProtector");
|
FLOOD_PROTECTOR_ITEM_PET_SUMMON = new FloodProtectorConfig("ItemPetSummonFloodProtector");
|
||||||
FLOOD_PROTECTOR_HERO_VOICE = new FloodProtectorConfig("HeroVoiceFloodProtector");
|
FLOOD_PROTECTOR_HERO_VOICE = new FloodProtectorConfig("HeroVoiceFloodProtector");
|
||||||
FLOOD_PROTECTOR_GLOBAL_CHAT = new FloodProtectorConfig("GlobalChatFloodProtector");
|
FLOOD_PROTECTOR_GLOBAL_CHAT = new FloodProtectorConfig("GlobalChatFloodProtector");
|
||||||
@@ -1367,7 +1364,6 @@ public class Config
|
|||||||
FLOOD_PROTECTOR_MULTISELL = new FloodProtectorConfig("MultiSellFloodProtector");
|
FLOOD_PROTECTOR_MULTISELL = new FloodProtectorConfig("MultiSellFloodProtector");
|
||||||
FLOOD_PROTECTOR_TRANSACTION = new FloodProtectorConfig("TransactionFloodProtector");
|
FLOOD_PROTECTOR_TRANSACTION = new FloodProtectorConfig("TransactionFloodProtector");
|
||||||
FLOOD_PROTECTOR_MANUFACTURE = new FloodProtectorConfig("ManufactureFloodProtector");
|
FLOOD_PROTECTOR_MANUFACTURE = new FloodProtectorConfig("ManufactureFloodProtector");
|
||||||
FLOOD_PROTECTOR_MANOR = new FloodProtectorConfig("ManorFloodProtector");
|
|
||||||
FLOOD_PROTECTOR_SENDMAIL = new FloodProtectorConfig("SendMailFloodProtector");
|
FLOOD_PROTECTOR_SENDMAIL = new FloodProtectorConfig("SendMailFloodProtector");
|
||||||
FLOOD_PROTECTOR_CHARACTER_SELECT = new FloodProtectorConfig("CharacterSelectFloodProtector");
|
FLOOD_PROTECTOR_CHARACTER_SELECT = new FloodProtectorConfig("CharacterSelectFloodProtector");
|
||||||
FLOOD_PROTECTOR_ITEM_AUCTION = new FloodProtectorConfig("ItemAuctionFloodProtector");
|
FLOOD_PROTECTOR_ITEM_AUCTION = new FloodProtectorConfig("ItemAuctionFloodProtector");
|
||||||
@@ -3689,7 +3685,6 @@ public class Config
|
|||||||
{
|
{
|
||||||
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_USE_ITEM, "UseItem", 4);
|
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_USE_ITEM, "UseItem", 4);
|
||||||
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_ROLL_DICE, "RollDice", 42);
|
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_ROLL_DICE, "RollDice", 42);
|
||||||
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_FIREWORK, "Firework", 42);
|
|
||||||
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_ITEM_PET_SUMMON, "ItemPetSummon", 16);
|
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_ITEM_PET_SUMMON, "ItemPetSummon", 16);
|
||||||
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_HERO_VOICE, "HeroVoice", 100);
|
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_HERO_VOICE, "HeroVoice", 100);
|
||||||
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_GLOBAL_CHAT, "GlobalChat", 5);
|
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_GLOBAL_CHAT, "GlobalChat", 5);
|
||||||
@@ -3699,7 +3694,6 @@ public class Config
|
|||||||
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_MULTISELL, "MultiSell", 1);
|
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_MULTISELL, "MultiSell", 1);
|
||||||
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_TRANSACTION, "Transaction", 10);
|
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_TRANSACTION, "Transaction", 10);
|
||||||
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_MANUFACTURE, "Manufacture", 3);
|
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_MANUFACTURE, "Manufacture", 3);
|
||||||
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_MANOR, "Manor", 30);
|
|
||||||
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_SENDMAIL, "SendMail", 100);
|
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_SENDMAIL, "SendMail", 100);
|
||||||
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_CHARACTER_SELECT, "CharacterSelect", 30);
|
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_CHARACTER_SELECT, "CharacterSelect", 30);
|
||||||
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_ITEM_AUCTION, "ItemAuction", 9);
|
loadFloodProtectorConfig(properties, FLOOD_PROTECTOR_ITEM_AUCTION, "ItemAuction", 9);
|
||||||
|
|||||||
@@ -348,7 +348,6 @@ import org.l2jmobius.gameserver.taskmanager.PlayerAutoSaveTaskManager;
|
|||||||
import org.l2jmobius.gameserver.taskmanager.PvpFlagTaskManager;
|
import org.l2jmobius.gameserver.taskmanager.PvpFlagTaskManager;
|
||||||
import org.l2jmobius.gameserver.util.Broadcast;
|
import org.l2jmobius.gameserver.util.Broadcast;
|
||||||
import org.l2jmobius.gameserver.util.EnumIntBitmask;
|
import org.l2jmobius.gameserver.util.EnumIntBitmask;
|
||||||
import org.l2jmobius.gameserver.util.FloodProtectors;
|
|
||||||
import org.l2jmobius.gameserver.util.Util;
|
import org.l2jmobius.gameserver.util.Util;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -11968,11 +11967,6 @@ public class PlayerInstance extends Playable
|
|||||||
return _isInHideoutSiege;
|
return _isInHideoutSiege;
|
||||||
}
|
}
|
||||||
|
|
||||||
public FloodProtectors getFloodProtectors()
|
|
||||||
{
|
|
||||||
return _client.getFloodProtectors();
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isFlyingMounted()
|
public boolean isFlyingMounted()
|
||||||
{
|
{
|
||||||
return checkTransformed(Transform::isFlying);
|
return checkTransformed(Transform::isFlying);
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ public class Action implements IClientIncomingPacket
|
|||||||
@Override
|
@Override
|
||||||
public void run(GameClient client)
|
public void run(GameClient client)
|
||||||
{
|
{
|
||||||
if (!client.getFloodProtectors().getPlayerAction().tryPerformAction("PlayerAction"))
|
if (!client.getFloodProtectors().canPerformPlayerAction())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ public class AttackRequest implements IClientIncomingPacket
|
|||||||
@Override
|
@Override
|
||||||
public void run(GameClient client)
|
public void run(GameClient client)
|
||||||
{
|
{
|
||||||
if (!client.getFloodProtectors().getPlayerAction().tryPerformAction("PlayerAction"))
|
if (!client.getFloodProtectors().canPerformPlayerAction())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ public class CharacterDelete implements IClientIncomingPacket
|
|||||||
@Override
|
@Override
|
||||||
public void run(GameClient client)
|
public void run(GameClient client)
|
||||||
{
|
{
|
||||||
// if (!client.getFloodProtectors().getCharacterSelect().tryPerformAction("CharacterDelete"))
|
// if (!client.getFloodProtectors().canSelectCharacter())
|
||||||
// {
|
// {
|
||||||
// client.sendPacket(new CharDeleteFail(CharacterDeleteFailType.UNKNOWN));
|
// client.sendPacket(new CharDeleteFail(CharacterDeleteFailType.UNKNOWN));
|
||||||
// return;
|
// return;
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ public class CharacterRestore implements IClientIncomingPacket
|
|||||||
@Override
|
@Override
|
||||||
public void run(GameClient client)
|
public void run(GameClient client)
|
||||||
{
|
{
|
||||||
if (!client.getFloodProtectors().getCharacterSelect().tryPerformAction("CharacterRestore"))
|
if (!client.getFloodProtectors().canSelectCharacter())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,7 +74,7 @@ public class CharacterSelect implements IClientIncomingPacket
|
|||||||
@Override
|
@Override
|
||||||
public void run(GameClient client)
|
public void run(GameClient client)
|
||||||
{
|
{
|
||||||
if (!client.getFloodProtectors().getCharacterSelect().tryPerformAction("CharacterSelect"))
|
if (!client.getFloodProtectors().canSelectCharacter())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ public class MultiSellChoose implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getMultiSell().tryPerformAction("multisell choose"))
|
if (!client.getFloodProtectors().canUseMultiSell())
|
||||||
{
|
{
|
||||||
player.setMultiSell(null);
|
player.setMultiSell(null);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ public class RequestBidItemAuction implements IClientIncomingPacket
|
|||||||
}
|
}
|
||||||
|
|
||||||
// can't use auction fp here
|
// can't use auction fp here
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("auction"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You are bidding too fast.");
|
player.sendMessage("You are bidding too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ public class RequestBuyItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("buy"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You are buying too fast.");
|
player.sendMessage("You are buying too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ public class RequestBuySeed implements IClientIncomingPacket
|
|||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (!client.getFloodProtectors().getManor().tryPerformAction("BuySeed"))
|
else if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You are buying seeds too fast!");
|
player.sendMessage("You are buying seeds too fast!");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -121,7 +121,7 @@ public class RequestBypassToServer implements IClientIncomingPacket
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getServerBypass().tryPerformAction(_command))
|
if (!client.getFloodProtectors().canUseServerBypass())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,7 +57,7 @@ public class RequestCancelPostAttachment implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("cancelpost"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ public class RequestCrystallizeItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (!client.getFloodProtectors().getTransaction().tryPerformAction("crystallize"))
|
// if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
// {
|
// {
|
||||||
// player.sendMessage("You are crystallizing too fast.");
|
// player.sendMessage("You are crystallizing too fast.");
|
||||||
// return;
|
// return;
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ public class RequestDestroyItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("destroy"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You are destroying items too fast.");
|
player.sendMessage("You are destroying items too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -68,7 +68,7 @@ public class RequestDropItem implements IClientIncomingPacket
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Flood protect drop to avoid packet lag
|
// Flood protect drop to avoid packet lag
|
||||||
if (!client.getFloodProtectors().getDropItem().tryPerformAction("drop item"))
|
if (!client.getFloodProtectors().canDropItem())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class RequestGetItemFromPet implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("getfrompet"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You get items from pet too fast.");
|
player.sendMessage("You get items from pet too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ public class RequestGiveItemToPet implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("giveitemtopet"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You are giving items to pet too fast.");
|
player.sendMessage("You are giving items to pet too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class RequestHennaEquip implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("HennaEquip"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ public class RequestHennaRemove implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("HennaRemove"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ public class RequestInfoItemAuction implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getItemAuction().tryPerformAction("RequestInfoItemAuction"))
|
if (!client.getFloodProtectors().canUseItemAuction())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ public class RequestPackageSend implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("deposit"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You depositing items too fast.");
|
player.sendMessage("You depositing items too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ public class RequestPetUseItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getUseItem().tryPerformAction("pet use item"))
|
if (!client.getFloodProtectors().canUseItem())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ public class RequestPostAttachment implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("getattach"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -120,7 +120,7 @@ public class RequestPreviewItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("buy"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You are buying too fast.");
|
player.sendMessage("You are buying too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ public class RequestPrivateStoreBuy implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("privatestorebuy"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You are buying items too fast.");
|
player.sendMessage("You are buying items too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ public class RequestPrivateStoreSell implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("privatestoresell"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You are selling items too fast.");
|
player.sendMessage("You are selling items too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ public class RequestRecipeBookDestroy implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("RecipeDestroy"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ public class RequestRecipeItemMakeSelf implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getManufacture().tryPerformAction("RecipeMakeSelf"))
|
if (!client.getFloodProtectors().canManufacture())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class RequestRecipeShopMakeItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getManufacture().tryPerformAction("RecipeShopMake"))
|
if (!client.getFloodProtectors().canManufacture())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ public class RequestRefundItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("refund"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You are using refund too fast.");
|
player.sendMessage("You are using refund too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ public class RequestRejectPostAttachment implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("rejectattach"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ public class RequestSellItem implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("buy"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You are buying too fast.");
|
player.sendMessage("You are buying too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -249,7 +249,7 @@ public class RequestSendPost implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getSendMail().tryPerformAction("sendmail"))
|
if (!client.getFloodProtectors().canSendMail())
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.THE_PREVIOUS_MAIL_WAS_FORWARDED_LESS_THAN_1_MINUTE_AGO_AND_THIS_CANNOT_BE_FORWARDED);
|
player.sendPacket(SystemMessageId.THE_PREVIOUS_MAIL_WAS_FORWARDED_LESS_THAN_1_MINUTE_AGO_AND_THIS_CANNOT_BE_FORWARDED);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -81,7 +81,7 @@ public class SendWareHouseDepositList implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("deposit"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You are depositing items too fast.");
|
player.sendMessage("You are depositing items too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ public class SendWareHouseWithDrawList implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("withdraw"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You are withdrawing items too fast.");
|
player.sendMessage("You are withdrawing items too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ public class TradeDone implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!client.getFloodProtectors().getTransaction().tryPerformAction("trade"))
|
if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
{
|
{
|
||||||
player.sendMessage("You are trading too fast.");
|
player.sendMessage("You are trading too fast.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ public class UseItem implements IClientIncomingPacket
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Flood protect UseItem
|
// Flood protect UseItem
|
||||||
if (!client.getFloodProtectors().getUseItem().tryPerformAction("use item"))
|
if (!client.getFloodProtectors().canUseItem())
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ public class RequestCrystallizeEstimate implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (!client.getFloodProtectors().getTransaction().tryPerformAction("crystallize"))
|
// if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
// {
|
// {
|
||||||
// player.sendMessage("You are crystallizing too fast.");
|
// player.sendMessage("You are crystallizing too fast.");
|
||||||
// return;
|
// return;
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ public class RequestCrystallizeItemCancel implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (!client.getFloodProtectors().getTransaction().tryPerformAction("crystallize"))
|
// if (!client.getFloodProtectors().canPerformTransaction())
|
||||||
// {
|
// {
|
||||||
// player.sendMessage("You are crystallizing too fast.");
|
// player.sendMessage("You are crystallizing too fast.");
|
||||||
// return;
|
// return;
|
||||||
|
|||||||
@@ -82,10 +82,9 @@ public class FloodProtectorAction
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks whether the request is flood protected or not.
|
* Checks whether the request is flood protected or not.
|
||||||
* @param command command issued or short command description
|
|
||||||
* @return true if action is allowed, otherwise false
|
* @return true if action is allowed, otherwise false
|
||||||
*/
|
*/
|
||||||
public boolean tryPerformAction(String command)
|
public boolean canPerformAction()
|
||||||
{
|
{
|
||||||
if ((_client.getPlayer() != null) && _client.getPlayer().canOverrideCond(PlayerCondOverride.FLOOD_CONDITIONS))
|
if ((_client.getPlayer() != null) && _client.getPlayer().canOverrideCond(PlayerCondOverride.FLOOD_CONDITIONS))
|
||||||
{
|
{
|
||||||
@@ -97,7 +96,7 @@ public class FloodProtectorAction
|
|||||||
{
|
{
|
||||||
if (_config.LOG_FLOODING && !_logged && LOGGER.isLoggable(Level.WARNING))
|
if (_config.LOG_FLOODING && !_logged && LOGGER.isLoggable(Level.WARNING))
|
||||||
{
|
{
|
||||||
log(" called command ", command, " ~", String.valueOf((_config.FLOOD_PROTECTION_INTERVAL - (_nextGameTick - curTick)) * GameTimeTaskManager.MILLIS_IN_TICK), " ms after previous command");
|
log(" called command ", _config.FLOOD_PROTECTOR_TYPE, " ~", String.valueOf((_config.FLOOD_PROTECTION_INTERVAL - (_nextGameTick - curTick)) * GameTimeTaskManager.MILLIS_IN_TICK), " ms after previous command");
|
||||||
_logged = true;
|
_logged = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -25,73 +25,20 @@ import org.l2jmobius.gameserver.network.GameClient;
|
|||||||
*/
|
*/
|
||||||
public class FloodProtectors
|
public class FloodProtectors
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* Use-item flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _useItem;
|
private final FloodProtectorAction _useItem;
|
||||||
/**
|
|
||||||
* Roll-dice flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _rollDice;
|
private final FloodProtectorAction _rollDice;
|
||||||
/**
|
|
||||||
* Firework flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _firework;
|
|
||||||
/**
|
|
||||||
* Item-pet-summon flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _itemPetSummon;
|
private final FloodProtectorAction _itemPetSummon;
|
||||||
/**
|
|
||||||
* Hero-voice flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _heroVoice;
|
private final FloodProtectorAction _heroVoice;
|
||||||
/**
|
|
||||||
* Global-chat flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _globalChat;
|
private final FloodProtectorAction _globalChat;
|
||||||
/**
|
|
||||||
* Subclass flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _subclass;
|
private final FloodProtectorAction _subclass;
|
||||||
/**
|
|
||||||
* Drop-item flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _dropItem;
|
private final FloodProtectorAction _dropItem;
|
||||||
/**
|
|
||||||
* Server-bypass flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _serverBypass;
|
private final FloodProtectorAction _serverBypass;
|
||||||
/**
|
|
||||||
* Multisell flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _multiSell;
|
private final FloodProtectorAction _multiSell;
|
||||||
/**
|
|
||||||
* Transaction flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _transaction;
|
private final FloodProtectorAction _transaction;
|
||||||
/**
|
|
||||||
* Manufacture flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _manufacture;
|
private final FloodProtectorAction _manufacture;
|
||||||
/**
|
|
||||||
* Manor flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _manor;
|
|
||||||
/**
|
|
||||||
* Send mail flood protector.
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _sendMail;
|
private final FloodProtectorAction _sendMail;
|
||||||
/**
|
|
||||||
* Character Select protector
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _characterSelect;
|
private final FloodProtectorAction _characterSelect;
|
||||||
/**
|
|
||||||
* Item Auction
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _itemAuction;
|
private final FloodProtectorAction _itemAuction;
|
||||||
/**
|
|
||||||
* Player Action
|
|
||||||
*/
|
|
||||||
private final FloodProtectorAction _playerAction;
|
private final FloodProtectorAction _playerAction;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -103,7 +50,6 @@ public class FloodProtectors
|
|||||||
super();
|
super();
|
||||||
_useItem = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_USE_ITEM);
|
_useItem = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_USE_ITEM);
|
||||||
_rollDice = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_ROLL_DICE);
|
_rollDice = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_ROLL_DICE);
|
||||||
_firework = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_FIREWORK);
|
|
||||||
_itemPetSummon = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_ITEM_PET_SUMMON);
|
_itemPetSummon = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_ITEM_PET_SUMMON);
|
||||||
_heroVoice = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_HERO_VOICE);
|
_heroVoice = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_HERO_VOICE);
|
||||||
_globalChat = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_GLOBAL_CHAT);
|
_globalChat = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_GLOBAL_CHAT);
|
||||||
@@ -113,162 +59,84 @@ public class FloodProtectors
|
|||||||
_multiSell = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_MULTISELL);
|
_multiSell = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_MULTISELL);
|
||||||
_transaction = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_TRANSACTION);
|
_transaction = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_TRANSACTION);
|
||||||
_manufacture = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_MANUFACTURE);
|
_manufacture = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_MANUFACTURE);
|
||||||
_manor = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_MANOR);
|
|
||||||
_sendMail = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_SENDMAIL);
|
_sendMail = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_SENDMAIL);
|
||||||
_characterSelect = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_CHARACTER_SELECT);
|
_characterSelect = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_CHARACTER_SELECT);
|
||||||
_itemAuction = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_ITEM_AUCTION);
|
_itemAuction = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_ITEM_AUCTION);
|
||||||
_playerAction = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_PLAYER_ACTION);
|
_playerAction = new FloodProtectorAction(client, Config.FLOOD_PROTECTOR_PLAYER_ACTION);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canUseItem()
|
||||||
* Returns {@link #_useItem}.
|
|
||||||
* @return {@link #_useItem}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getUseItem()
|
|
||||||
{
|
{
|
||||||
return _useItem;
|
return _useItem.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canRollDice()
|
||||||
* Returns {@link #_rollDice}.
|
|
||||||
* @return {@link #_rollDice}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getRollDice()
|
|
||||||
{
|
{
|
||||||
return _rollDice;
|
return _rollDice.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canUsePetSummonItem()
|
||||||
* Returns {@link #_firework}.
|
|
||||||
* @return {@link #_firework}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getFirework()
|
|
||||||
{
|
{
|
||||||
return _firework;
|
return _itemPetSummon.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canUseHeroVoice()
|
||||||
* Returns {@link #_itemPetSummon}.
|
|
||||||
* @return {@link #_itemPetSummon}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getItemPetSummon()
|
|
||||||
{
|
{
|
||||||
return _itemPetSummon;
|
return _heroVoice.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canUseGlobalChat()
|
||||||
* Returns {@link #_heroVoice}.
|
|
||||||
* @return {@link #_heroVoice}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getHeroVoice()
|
|
||||||
{
|
{
|
||||||
return _heroVoice;
|
return _globalChat.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canChangeSubclass()
|
||||||
* Returns {@link #_globalChat}.
|
|
||||||
* @return {@link #_globalChat}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getGlobalChat()
|
|
||||||
{
|
{
|
||||||
return _globalChat;
|
return _subclass.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canDropItem()
|
||||||
* Returns {@link #_subclass}.
|
|
||||||
* @return {@link #_subclass}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getSubclass()
|
|
||||||
{
|
{
|
||||||
return _subclass;
|
return _dropItem.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canUseServerBypass()
|
||||||
* Returns {@link #_dropItem}.
|
|
||||||
* @return {@link #_dropItem}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getDropItem()
|
|
||||||
{
|
{
|
||||||
return _dropItem;
|
return _serverBypass.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canUseMultiSell()
|
||||||
* Returns {@link #_serverBypass}.
|
|
||||||
* @return {@link #_serverBypass}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getServerBypass()
|
|
||||||
{
|
{
|
||||||
return _serverBypass;
|
return _multiSell.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canPerformTransaction()
|
||||||
* @return {@link #_multiSell}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getMultiSell()
|
|
||||||
{
|
{
|
||||||
return _multiSell;
|
return _transaction.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canManufacture()
|
||||||
* Returns {@link #_transaction}.
|
|
||||||
* @return {@link #_transaction}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getTransaction()
|
|
||||||
{
|
{
|
||||||
return _transaction;
|
return _manufacture.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canSendMail()
|
||||||
* Returns {@link #_manufacture}.
|
|
||||||
* @return {@link #_manufacture}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getManufacture()
|
|
||||||
{
|
{
|
||||||
return _manufacture;
|
return _sendMail.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canSelectCharacter()
|
||||||
* Returns {@link #_manor}.
|
|
||||||
* @return {@link #_manor}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getManor()
|
|
||||||
{
|
{
|
||||||
return _manor;
|
return _characterSelect.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canUseItemAuction()
|
||||||
* Returns {@link #_sendMail}.
|
|
||||||
* @return {@link #_sendMail}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getSendMail()
|
|
||||||
{
|
{
|
||||||
return _sendMail;
|
return _itemAuction.canPerformAction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
public boolean canPerformPlayerAction()
|
||||||
* Returns {@link #_characterSelect}.
|
|
||||||
* @return {@link #_characterSelect}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getCharacterSelect()
|
|
||||||
{
|
{
|
||||||
return _characterSelect;
|
return _playerAction.canPerformAction();
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns {@link #_itemAuction}.
|
|
||||||
* @return {@link #_itemAuction}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getItemAuction()
|
|
||||||
{
|
|
||||||
return _itemAuction;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns {@link #_playerAction}.
|
|
||||||
* @return {@link #_playerAction}
|
|
||||||
*/
|
|
||||||
public FloodProtectorAction getPlayerAction()
|
|
||||||
{
|
|
||||||
return _playerAction;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,13 +24,6 @@ FloodProtectorRollDicePunishmentLimit = 0
|
|||||||
FloodProtectorRollDicePunishmentType = none
|
FloodProtectorRollDicePunishmentType = none
|
||||||
FloodProtectorRollDicePunishmentTime = 0
|
FloodProtectorRollDicePunishmentTime = 0
|
||||||
|
|
||||||
# Firework - firework flooding
|
|
||||||
FloodProtectorFireworkInterval = 42
|
|
||||||
FloodProtectorFireworkLogFlooding = False
|
|
||||||
FloodProtectorFireworkPunishmentLimit = 0
|
|
||||||
FloodProtectorFireworkPunishmentType = none
|
|
||||||
FloodProtectorFireworkPunishmentTime = 0
|
|
||||||
|
|
||||||
# ItemPetSummon - item summoning and pet mounting flooding
|
# ItemPetSummon - item summoning and pet mounting flooding
|
||||||
FloodProtectorItemPetSummonInterval = 16
|
FloodProtectorItemPetSummonInterval = 16
|
||||||
FloodProtectorItemPetSummonLogFlooding = False
|
FloodProtectorItemPetSummonLogFlooding = False
|
||||||
@@ -94,13 +87,6 @@ FloodProtectorManufacturePunishmentLimit = 0
|
|||||||
FloodProtectorManufacturePunishmentType = none
|
FloodProtectorManufacturePunishmentType = none
|
||||||
FloodProtectorManufacturePunishmentTime = 0
|
FloodProtectorManufacturePunishmentTime = 0
|
||||||
|
|
||||||
# Manor
|
|
||||||
FloodProtectorManorInterval = 30
|
|
||||||
FloodProtectorManorLogFlooding = False
|
|
||||||
FloodProtectorManorPunishmentLimit = 0
|
|
||||||
FloodProtectorManorPunishmentType = none
|
|
||||||
FloodProtectorManorPunishmentTime = 0
|
|
||||||
|
|
||||||
# SendMail - sending mail interval, 10s on retail
|
# SendMail - sending mail interval, 10s on retail
|
||||||
FloodProtectorSendMailInterval = 100
|
FloodProtectorSendMailInterval = 100
|
||||||
FloodProtectorSendMailLogFlooding = False
|
FloodProtectorSendMailLogFlooding = False
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ public class ItemAuctionLink implements IBypassHandler
|
|||||||
final String cmd = st.nextToken();
|
final String cmd = st.nextToken();
|
||||||
if ("show".equalsIgnoreCase(cmd))
|
if ("show".equalsIgnoreCase(cmd))
|
||||||
{
|
{
|
||||||
if (!player.getFloodProtectors().getItemAuction().tryPerformAction("RequestInfoItemAuction"))
|
if (!player.getClient().getFloodProtectors().canUseItemAuction())
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user