From 0dbeffebb9a56ca93ef0e4fbf8f9605e205add39 Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Tue, 29 May 2018 15:59:11 +0000 Subject: [PATCH] Prevent using skills while teleporting from community. --- .../data/scripts/handlers/communityboard/HomeBoard.java | 8 +++++++- .../data/scripts/handlers/communityboard/HomeBoard.java | 8 +++++++- .../data/scripts/handlers/communityboard/HomeBoard.java | 8 +++++++- .../data/scripts/handlers/communityboard/HomeBoard.java | 8 +++++++- .../data/scripts/handlers/communityboard/HomeBoard.java | 8 +++++++- .../data/scripts/handlers/communityboard/HomeBoard.java | 8 +++++++- .../data/scripts/handlers/communityboard/HomeBoard.java | 8 +++++++- .../data/scripts/handlers/communityboard/HomeBoard.java | 8 +++++++- 8 files changed, 56 insertions(+), 8 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index d4028b16a1..299a98eb0b 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -29,6 +29,7 @@ import java.util.function.BiPredicate; import java.util.function.Predicate; import com.l2jmobius.Config; +import com.l2jmobius.commons.concurrent.ThreadPool; import com.l2jmobius.commons.database.DatabaseFactory; import com.l2jmobius.gameserver.cache.HtmCache; import com.l2jmobius.gameserver.data.sql.impl.ClanTable; @@ -88,7 +89,7 @@ public final class HomeBoard implements IParseBoardHandler } } - return commandCheck && (activeChar.isInCombat() || activeChar.isInDuel() || activeChar.isInOlympiadMode() || activeChar.isInsideZone(ZoneId.SIEGE) || activeChar.isInsideZone(ZoneId.PVP)); + return commandCheck && (activeChar.isCastingNow() || activeChar.isInCombat() || activeChar.isInDuel() || activeChar.isInOlympiadMode() || activeChar.isInsideZone(ZoneId.SIEGE) || activeChar.isInsideZone(ZoneId.PVP)); }; public static final Predicate KARMA_CHECK = player -> Config.COMMUNITYBOARD_KARMA_DISABLED && (player.getReputation() < 0); @@ -176,10 +177,15 @@ public final class HomeBoard implements IParseBoardHandler } else if (Config.COMMUNITY_AVAILABLE_TELEPORTS.get(teleBuypass) != null) { + activeChar.disableAllSkills(); activeChar.sendPacket(new ShowBoard()); activeChar.destroyItemByItemId("CB_Teleport", Config.COMMUNITYBOARD_CURRENCY, Config.COMMUNITYBOARD_TELEPORT_PRICE, activeChar, true); activeChar.setInstanceById(0); activeChar.teleToLocation(Config.COMMUNITY_AVAILABLE_TELEPORTS.get(teleBuypass), 0); + ThreadPool.schedule(() -> + { + activeChar.enableAllSkills(); + }, 3000); } } else if (command.startsWith("_bbsbuff")) diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index d4028b16a1..299a98eb0b 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -29,6 +29,7 @@ import java.util.function.BiPredicate; import java.util.function.Predicate; import com.l2jmobius.Config; +import com.l2jmobius.commons.concurrent.ThreadPool; import com.l2jmobius.commons.database.DatabaseFactory; import com.l2jmobius.gameserver.cache.HtmCache; import com.l2jmobius.gameserver.data.sql.impl.ClanTable; @@ -88,7 +89,7 @@ public final class HomeBoard implements IParseBoardHandler } } - return commandCheck && (activeChar.isInCombat() || activeChar.isInDuel() || activeChar.isInOlympiadMode() || activeChar.isInsideZone(ZoneId.SIEGE) || activeChar.isInsideZone(ZoneId.PVP)); + return commandCheck && (activeChar.isCastingNow() || activeChar.isInCombat() || activeChar.isInDuel() || activeChar.isInOlympiadMode() || activeChar.isInsideZone(ZoneId.SIEGE) || activeChar.isInsideZone(ZoneId.PVP)); }; public static final Predicate KARMA_CHECK = player -> Config.COMMUNITYBOARD_KARMA_DISABLED && (player.getReputation() < 0); @@ -176,10 +177,15 @@ public final class HomeBoard implements IParseBoardHandler } else if (Config.COMMUNITY_AVAILABLE_TELEPORTS.get(teleBuypass) != null) { + activeChar.disableAllSkills(); activeChar.sendPacket(new ShowBoard()); activeChar.destroyItemByItemId("CB_Teleport", Config.COMMUNITYBOARD_CURRENCY, Config.COMMUNITYBOARD_TELEPORT_PRICE, activeChar, true); activeChar.setInstanceById(0); activeChar.teleToLocation(Config.COMMUNITY_AVAILABLE_TELEPORTS.get(teleBuypass), 0); + ThreadPool.schedule(() -> + { + activeChar.enableAllSkills(); + }, 3000); } } else if (command.startsWith("_bbsbuff")) diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index d4028b16a1..299a98eb0b 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -29,6 +29,7 @@ import java.util.function.BiPredicate; import java.util.function.Predicate; import com.l2jmobius.Config; +import com.l2jmobius.commons.concurrent.ThreadPool; import com.l2jmobius.commons.database.DatabaseFactory; import com.l2jmobius.gameserver.cache.HtmCache; import com.l2jmobius.gameserver.data.sql.impl.ClanTable; @@ -88,7 +89,7 @@ public final class HomeBoard implements IParseBoardHandler } } - return commandCheck && (activeChar.isInCombat() || activeChar.isInDuel() || activeChar.isInOlympiadMode() || activeChar.isInsideZone(ZoneId.SIEGE) || activeChar.isInsideZone(ZoneId.PVP)); + return commandCheck && (activeChar.isCastingNow() || activeChar.isInCombat() || activeChar.isInDuel() || activeChar.isInOlympiadMode() || activeChar.isInsideZone(ZoneId.SIEGE) || activeChar.isInsideZone(ZoneId.PVP)); }; public static final Predicate KARMA_CHECK = player -> Config.COMMUNITYBOARD_KARMA_DISABLED && (player.getReputation() < 0); @@ -176,10 +177,15 @@ public final class HomeBoard implements IParseBoardHandler } else if (Config.COMMUNITY_AVAILABLE_TELEPORTS.get(teleBuypass) != null) { + activeChar.disableAllSkills(); activeChar.sendPacket(new ShowBoard()); activeChar.destroyItemByItemId("CB_Teleport", Config.COMMUNITYBOARD_CURRENCY, Config.COMMUNITYBOARD_TELEPORT_PRICE, activeChar, true); activeChar.setInstanceById(0); activeChar.teleToLocation(Config.COMMUNITY_AVAILABLE_TELEPORTS.get(teleBuypass), 0); + ThreadPool.schedule(() -> + { + activeChar.enableAllSkills(); + }, 3000); } } else if (command.startsWith("_bbsbuff")) diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index d4028b16a1..299a98eb0b 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -29,6 +29,7 @@ import java.util.function.BiPredicate; import java.util.function.Predicate; import com.l2jmobius.Config; +import com.l2jmobius.commons.concurrent.ThreadPool; import com.l2jmobius.commons.database.DatabaseFactory; import com.l2jmobius.gameserver.cache.HtmCache; import com.l2jmobius.gameserver.data.sql.impl.ClanTable; @@ -88,7 +89,7 @@ public final class HomeBoard implements IParseBoardHandler } } - return commandCheck && (activeChar.isInCombat() || activeChar.isInDuel() || activeChar.isInOlympiadMode() || activeChar.isInsideZone(ZoneId.SIEGE) || activeChar.isInsideZone(ZoneId.PVP)); + return commandCheck && (activeChar.isCastingNow() || activeChar.isInCombat() || activeChar.isInDuel() || activeChar.isInOlympiadMode() || activeChar.isInsideZone(ZoneId.SIEGE) || activeChar.isInsideZone(ZoneId.PVP)); }; public static final Predicate KARMA_CHECK = player -> Config.COMMUNITYBOARD_KARMA_DISABLED && (player.getReputation() < 0); @@ -176,10 +177,15 @@ public final class HomeBoard implements IParseBoardHandler } else if (Config.COMMUNITY_AVAILABLE_TELEPORTS.get(teleBuypass) != null) { + activeChar.disableAllSkills(); activeChar.sendPacket(new ShowBoard()); activeChar.destroyItemByItemId("CB_Teleport", Config.COMMUNITYBOARD_CURRENCY, Config.COMMUNITYBOARD_TELEPORT_PRICE, activeChar, true); activeChar.setInstanceById(0); activeChar.teleToLocation(Config.COMMUNITY_AVAILABLE_TELEPORTS.get(teleBuypass), 0); + ThreadPool.schedule(() -> + { + activeChar.enableAllSkills(); + }, 3000); } } else if (command.startsWith("_bbsbuff")) diff --git a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index df8a088315..982c1ad402 100644 --- a/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_CT_2.6_HighFive/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -29,6 +29,7 @@ import java.util.function.BiPredicate; import java.util.function.Predicate; import com.l2jmobius.Config; +import com.l2jmobius.commons.concurrent.ThreadPool; import com.l2jmobius.commons.database.DatabaseFactory; import com.l2jmobius.gameserver.cache.HtmCache; import com.l2jmobius.gameserver.data.sql.impl.ClanTable; @@ -87,7 +88,7 @@ public final class HomeBoard implements IParseBoardHandler } } - return commandCheck && (activeChar.isInCombat() || activeChar.isInDuel() || activeChar.isInOlympiadMode() || activeChar.isInsideZone(ZoneId.SIEGE) || activeChar.isInsideZone(ZoneId.PVP)); + return commandCheck && (activeChar.isCastingNow() || activeChar.isCastingSimultaneouslyNow() || activeChar.isInCombat() || activeChar.isInDuel() || activeChar.isInOlympiadMode() || activeChar.isInsideZone(ZoneId.SIEGE) || activeChar.isInsideZone(ZoneId.PVP)); }; public static final Predicate KARMA_CHECK = player -> Config.COMMUNITYBOARD_KARMA_DISABLED && (player.getKarma() > 0); @@ -175,11 +176,16 @@ public final class HomeBoard implements IParseBoardHandler } else if (Config.COMMUNITY_AVAILABLE_TELEPORTS.get(teleBuypass) != null) { + activeChar.disableAllSkills(); activeChar.sendPacket(new ShowBoard()); activeChar.destroyItemByItemId("CB_Teleport", Config.COMMUNITYBOARD_CURRENCY, Config.COMMUNITYBOARD_TELEPORT_PRICE, activeChar, true); activeChar.setIsIn7sDungeon(false); activeChar.setInstanceId(0); activeChar.teleToLocation(Config.COMMUNITY_AVAILABLE_TELEPORTS.get(teleBuypass), 0); + ThreadPool.schedule(() -> + { + activeChar.enableAllSkills(); + }, 3000); } } else if (command.startsWith("_bbsbuff")) diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index d4028b16a1..299a98eb0b 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -29,6 +29,7 @@ import java.util.function.BiPredicate; import java.util.function.Predicate; import com.l2jmobius.Config; +import com.l2jmobius.commons.concurrent.ThreadPool; import com.l2jmobius.commons.database.DatabaseFactory; import com.l2jmobius.gameserver.cache.HtmCache; import com.l2jmobius.gameserver.data.sql.impl.ClanTable; @@ -88,7 +89,7 @@ public final class HomeBoard implements IParseBoardHandler } } - return commandCheck && (activeChar.isInCombat() || activeChar.isInDuel() || activeChar.isInOlympiadMode() || activeChar.isInsideZone(ZoneId.SIEGE) || activeChar.isInsideZone(ZoneId.PVP)); + return commandCheck && (activeChar.isCastingNow() || activeChar.isInCombat() || activeChar.isInDuel() || activeChar.isInOlympiadMode() || activeChar.isInsideZone(ZoneId.SIEGE) || activeChar.isInsideZone(ZoneId.PVP)); }; public static final Predicate KARMA_CHECK = player -> Config.COMMUNITYBOARD_KARMA_DISABLED && (player.getReputation() < 0); @@ -176,10 +177,15 @@ public final class HomeBoard implements IParseBoardHandler } else if (Config.COMMUNITY_AVAILABLE_TELEPORTS.get(teleBuypass) != null) { + activeChar.disableAllSkills(); activeChar.sendPacket(new ShowBoard()); activeChar.destroyItemByItemId("CB_Teleport", Config.COMMUNITYBOARD_CURRENCY, Config.COMMUNITYBOARD_TELEPORT_PRICE, activeChar, true); activeChar.setInstanceById(0); activeChar.teleToLocation(Config.COMMUNITY_AVAILABLE_TELEPORTS.get(teleBuypass), 0); + ThreadPool.schedule(() -> + { + activeChar.enableAllSkills(); + }, 3000); } } else if (command.startsWith("_bbsbuff")) diff --git a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index d4028b16a1..299a98eb0b 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_Classic_2.1_Zaken/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -29,6 +29,7 @@ import java.util.function.BiPredicate; import java.util.function.Predicate; import com.l2jmobius.Config; +import com.l2jmobius.commons.concurrent.ThreadPool; import com.l2jmobius.commons.database.DatabaseFactory; import com.l2jmobius.gameserver.cache.HtmCache; import com.l2jmobius.gameserver.data.sql.impl.ClanTable; @@ -88,7 +89,7 @@ public final class HomeBoard implements IParseBoardHandler } } - return commandCheck && (activeChar.isInCombat() || activeChar.isInDuel() || activeChar.isInOlympiadMode() || activeChar.isInsideZone(ZoneId.SIEGE) || activeChar.isInsideZone(ZoneId.PVP)); + return commandCheck && (activeChar.isCastingNow() || activeChar.isInCombat() || activeChar.isInDuel() || activeChar.isInOlympiadMode() || activeChar.isInsideZone(ZoneId.SIEGE) || activeChar.isInsideZone(ZoneId.PVP)); }; public static final Predicate KARMA_CHECK = player -> Config.COMMUNITYBOARD_KARMA_DISABLED && (player.getReputation() < 0); @@ -176,10 +177,15 @@ public final class HomeBoard implements IParseBoardHandler } else if (Config.COMMUNITY_AVAILABLE_TELEPORTS.get(teleBuypass) != null) { + activeChar.disableAllSkills(); activeChar.sendPacket(new ShowBoard()); activeChar.destroyItemByItemId("CB_Teleport", Config.COMMUNITYBOARD_CURRENCY, Config.COMMUNITYBOARD_TELEPORT_PRICE, activeChar, true); activeChar.setInstanceById(0); activeChar.teleToLocation(Config.COMMUNITY_AVAILABLE_TELEPORTS.get(teleBuypass), 0); + ThreadPool.schedule(() -> + { + activeChar.enableAllSkills(); + }, 3000); } } else if (command.startsWith("_bbsbuff")) diff --git a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/communityboard/HomeBoard.java b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/communityboard/HomeBoard.java index d4028b16a1..299a98eb0b 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/communityboard/HomeBoard.java +++ b/L2J_Mobius_Classic_2.2_Antharas/dist/game/data/scripts/handlers/communityboard/HomeBoard.java @@ -29,6 +29,7 @@ import java.util.function.BiPredicate; import java.util.function.Predicate; import com.l2jmobius.Config; +import com.l2jmobius.commons.concurrent.ThreadPool; import com.l2jmobius.commons.database.DatabaseFactory; import com.l2jmobius.gameserver.cache.HtmCache; import com.l2jmobius.gameserver.data.sql.impl.ClanTable; @@ -88,7 +89,7 @@ public final class HomeBoard implements IParseBoardHandler } } - return commandCheck && (activeChar.isInCombat() || activeChar.isInDuel() || activeChar.isInOlympiadMode() || activeChar.isInsideZone(ZoneId.SIEGE) || activeChar.isInsideZone(ZoneId.PVP)); + return commandCheck && (activeChar.isCastingNow() || activeChar.isInCombat() || activeChar.isInDuel() || activeChar.isInOlympiadMode() || activeChar.isInsideZone(ZoneId.SIEGE) || activeChar.isInsideZone(ZoneId.PVP)); }; public static final Predicate KARMA_CHECK = player -> Config.COMMUNITYBOARD_KARMA_DISABLED && (player.getReputation() < 0); @@ -176,10 +177,15 @@ public final class HomeBoard implements IParseBoardHandler } else if (Config.COMMUNITY_AVAILABLE_TELEPORTS.get(teleBuypass) != null) { + activeChar.disableAllSkills(); activeChar.sendPacket(new ShowBoard()); activeChar.destroyItemByItemId("CB_Teleport", Config.COMMUNITYBOARD_CURRENCY, Config.COMMUNITYBOARD_TELEPORT_PRICE, activeChar, true); activeChar.setInstanceById(0); activeChar.teleToLocation(Config.COMMUNITY_AVAILABLE_TELEPORTS.get(teleBuypass), 0); + ThreadPool.schedule(() -> + { + activeChar.enableAllSkills(); + }, 3000); } } else if (command.startsWith("_bbsbuff"))