Community board buff skill id protection.

This commit is contained in:
MobiusDev
2017-09-07 13:26:04 +00:00
parent 9f8daca70b
commit bde00f08b9
15 changed files with 83 additions and 13 deletions

View File

@@ -61,3 +61,7 @@ CommunityPremiumBuyCoinId = 57
# Amount of coins needed for each premium day bought.
CommunityPremiumPricePerDay = 1000000
# List of available buffs to avoid exploits.
# Usage: SkillId1,SkillId2...
CommunityAvailableBuffs = 11517,11522,11519,11520,11521,11518,11565,11824,11567,11615,11616,11529,11530,11532,11523,11524,11525,1259,982,5987,5988,1323

View File

@@ -90,7 +90,7 @@ public final class HomeBoard implements IParseBoardHandler
return commandCheck && (activeChar.isInCombat() || activeChar.isInDuel() || activeChar.isInOlympiadMode() || activeChar.isInsideZone(ZoneId.SIEGE) || activeChar.isInsideZone(ZoneId.PVP));
};
public static final Predicate<L2PcInstance> KARMAR_CHECK = player -> Config.COMMUNITYBOARD_KARMA_DISABLED && (player.getReputation() < 0);
public static final Predicate<L2PcInstance> KARMA_CHECK = player -> Config.COMMUNITYBOARD_KARMA_DISABLED && (player.getReputation() < 0);
@Override
public String[] getCommunityBoardCommands()
@@ -111,7 +111,7 @@ public final class HomeBoard implements IParseBoardHandler
return false;
}
if (KARMAR_CHECK.test(activeChar))
if (KARMA_CHECK.test(activeChar))
{
activeChar.sendMessage("Players with Karma cannot use the Community Board.");
return false;
@@ -201,7 +201,10 @@ public final class HomeBoard implements IParseBoardHandler
for (int i = 0; i < buffCount; i++)
{
final Skill skill = SkillData.getInstance().getSkill(Integer.parseInt(buypassOptions[i].split(",")[0]), Integer.parseInt(buypassOptions[i].split(",")[1]));
if (!Config.COMMUNITY_AVAILABLE_BUFFS.contains(skill.getId()))
{
continue;
}
targets.stream().filter(target -> !target.isSummon() || !skill.isSharedWithSummon()).forEach(target ->
{
skill.applyEffects(activeChar, target);