diff --git a/src/main/java/net/server/channel/handlers/PlayerInteractionHandler.java b/src/main/java/net/server/channel/handlers/PlayerInteractionHandler.java index 75e90ae749..0471a672fd 100644 --- a/src/main/java/net/server/channel/handlers/PlayerInteractionHandler.java +++ b/src/main/java/net/server/channel/handlers/PlayerInteractionHandler.java @@ -44,6 +44,7 @@ import tools.PacketCreator; import java.awt.*; import java.sql.SQLException; import java.util.Arrays; +import java.util.List; /** * @author Matze @@ -83,7 +84,9 @@ public final class PlayerInteractionHandler extends AbstractPacketHandler { MERCHANT_MESO(0x2B), SOMETHING(0x2D), VIEW_VISITORS(0x2E), - BLACKLIST(0x2F), + VIEW_BLACKLIST(0x2F), + ADD_TO_BLACKLIST(0x30), + REMOVE_FROM_BLACKLIST(0x31), REQUEST_TIE(0x32), ANSWER_TIE(0x33), GIVE_UP(0x34), @@ -681,6 +684,12 @@ public final class PlayerInteractionHandler extends AbstractPacketHandler { } merchant.withdrawMesos(chr); + + } else if (mode == Action.VIEW_BLACKLIST.getCode()) { + List blacklistedNames = List.of("Blanca", "Betsy", "Kevin", "Rosa", "Evan", "Terence", + "Cecilia", "Gayle", "Erma", "Dorothy", "Willis", "Alberta", "Marilyn", "Myron", "Sheryl", + "Marco", "Jose", "Kendra", "Laurence", "Victoria", "NonListed"); + c.sendPacket(PacketCreator.viewBlacklist(blacklistedNames)); } else if (mode == Action.MERCHANT_ORGANIZE.getCode()) { HiredMerchant merchant = chr.getHiredMerchant(); if (merchant == null || !merchant.isOwner(chr)) { diff --git a/src/main/java/tools/PacketCreator.java b/src/main/java/tools/PacketCreator.java index 0f92d43dae..ca375525d4 100644 --- a/src/main/java/tools/PacketCreator.java +++ b/src/main/java/tools/PacketCreator.java @@ -5203,6 +5203,19 @@ public class PacketCreator { return p; } + /** + * @param chrNames Blacklisted names. The first 20 names will be displayed, anything beyond does no difference. + */ + public static Packet viewBlacklist(List chrNames) { + final OutPacket p = OutPacket.create(SendOpcode.PLAYER_INTERACTION); + p.writeByte(PlayerInteractionHandler.Action.VIEW_BLACKLIST.getCode()); + p.writeShort(chrNames.size()); + for (String chrName : chrNames) { + p.writeString(chrName); + } + return p; + } + public static Packet hiredMerchantVisitorAdd(Character chr, int slot) { final OutPacket p = OutPacket.create(SendOpcode.PLAYER_INTERACTION); p.writeByte(PlayerInteractionHandler.Action.VISIT.getCode());