From 9f70e45c6e589aac878b04ba4821d9a441aa9f68 Mon Sep 17 00:00:00 2001 From: Christian 'ketura' McCarty Date: Sun, 19 Sep 2021 21:32:25 -0500 Subject: [PATCH 1/8] Adding September PC Promos (Isildur + Shelob) --- .../gemp-lotr-async/src/main/web/js/gemp-022/PC_Cards.js | 3 +++ .../src/main/resources/blueprintMapping.txt | 8 ++++++-- .../gempukku/lotro/collection/CollectionSerializer.java | 6 +++++- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/PC_Cards.js b/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/PC_Cards.js index 52ccc171d..4ce1ff092 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/PC_Cards.js +++ b/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/PC_Cards.js @@ -154,5 +154,8 @@ var PCCards = { //August 2021 '1_366': 'https://i.lotrtcgpc.net/promos/2021/08/PCPROMO_FA_01298.jpg', '1_367': 'https://i.lotrtcgpc.net/promos/2021/08/PCPROMO_FA_01349.jpg', + //September 2021 + '9_53': 'https://i.lotrtcgpc.net/promos/2021/09/PCPROMO_FA_09033.jpg', + '10_123':'https://i.lotrtcgpc.net/promos/2021/09/PCPROMO_FA_10123.jpg', } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt b/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt index 802b34ddb..dd4ac2a2d 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt @@ -233,7 +233,11 @@ gl_theOneRing,1_2 11_267,11_54 #The Witch-king, Captain of the Nine Riders 11_268,11_226 -#Hobbit Stealth +#Hobbit Stealth - 2021/08 1_366,1_298 -#Bridge of Khazad-dum +#Bridge of Khazad-dum - 2021/08 1_367,1_349 +#Isildur, Bearer of Heirlooms - 2021/09 +9_53,9_33 +#Shelob, Her Ladyship - 2021/09 +10_123,10_23 \ No newline at end of file diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/collection/CollectionSerializer.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/collection/CollectionSerializer.java index 5050d4f96..b98649352 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/collection/CollectionSerializer.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/collection/CollectionSerializer.java @@ -59,10 +59,14 @@ public class CollectionSerializer { //April 2021 PC Promos _singleByteCountItems.add("11_267"); _singleByteCountItems.add("11_268"); - + //August 2021 PC Promos _singleByteCountItems.add("1_366"); _singleByteCountItems.add("1_367"); + + //September 2021 PC Promos + _singleByteCountItems.add("9_53"); + _singleByteCountItems.add("10_123"); } private void fillDoubleByteItems() throws IOException { From f9d78e33ecca669cd98034efa5427ec0abd451c4 Mon Sep 17 00:00:00 2001 From: Christian 'ketura' McCarty Date: Tue, 5 Oct 2021 18:30:34 -0500 Subject: [PATCH 2/8] Enabled Towers Standard Enhanced in the game hall by request. --- .../src/main/resources/lotrFormats.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/gemp-lotr/gemp-lotr-server/src/main/resources/lotrFormats.json b/gemp-lotr/gemp-lotr-server/src/main/resources/lotrFormats.json index b9af859ff..2e71e5d18 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/resources/lotrFormats.json +++ b/gemp-lotr/gemp-lotr-server/src/main/resources/lotrFormats.json @@ -127,6 +127,15 @@ "banned":["1_40", "1_45", "1_80", "1_108", "1_139", "1_234", "1_248", "1_313", "2_32", "2_101", "2_108", "3_38", "3_42", "3_68", "4_192"], "set":[1, 2, 3, 4, 5, 6] }, + { + "name":"Enhanced Towers Standard", + "code":"ts_reflections", + "sites":"TWO_TOWERS", + "cancelRingBearerSkirmish":false, + "banned":["1_40", "1_45", "1_80", "1_108", "1_139", "1_234", "1_248", "1_313", "2_32", "2_101", "2_108", "3_38", "3_42", "3_68", "4_192"], + "set":[1, 2, 3, 4, 5, 6, 9, 14, 16], + "hall":true + }, { "name": "Anything goes", "code":"rev_tow_sta", @@ -161,15 +170,6 @@ "set":[2, 3, 4, 5, 6], "hall":false }, - { - "name":"Towers standard - Sets 1-6,9,14,16", - "code":"ts_reflections", - "sites":"TWO_TOWERS", - "cancelRingBearerSkirmish":false, - "banned":["1_40", "1_45", "1_80", "1_108", "1_139", "1_234", "1_248", "1_313", "2_32", "2_101", "2_108", "3_38", "3_42", "3_68", "4_192"], - "set":[1, 2, 3, 4, 5, 6, 9, 14, 16], - "hall":false - }, { "name":"King Standard", "code":"rotk_sta", From a1344b6b4a18f30e7b91703b50da1aace3b25462 Mon Sep 17 00:00:00 2001 From: Christian 'ketura' McCarty Date: Sun, 24 Oct 2021 22:22:11 -0500 Subject: [PATCH 3/8] October 2021 PC Promos --- .../gemp-lotr-async/src/main/web/js/gemp-022/PC_Cards.js | 3 +++ .../gemp-lotr-cards/src/main/resources/blueprintMapping.txt | 6 +++++- .../com/gempukku/lotro/collection/CollectionSerializer.java | 4 ++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/PC_Cards.js b/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/PC_Cards.js index 4ce1ff092..b2638df55 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/PC_Cards.js +++ b/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/PC_Cards.js @@ -157,5 +157,8 @@ var PCCards = { //September 2021 '9_53': 'https://i.lotrtcgpc.net/promos/2021/09/PCPROMO_FA_09033.jpg', '10_123':'https://i.lotrtcgpc.net/promos/2021/09/PCPROMO_FA_10123.jpg', + //October 2021 + '1_368':'https://i.lotrtcgpc.net/promos/2021/10/PCPROMO_FA_01083.jpg', + '1_369':'https://i.lotrtcgpc.net/promos/2021/10/PCPROMO_FA_01127.jpg' } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt b/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt index dd4ac2a2d..822e17d8b 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt @@ -240,4 +240,8 @@ gl_theOneRing,1_2 #Isildur, Bearer of Heirlooms - 2021/09 9_53,9_33 #Shelob, Her Ladyship - 2021/09 -10_123,10_23 \ No newline at end of file +10_123,10_23 +#Servant of the Secret Flame - 2021/10 +1_368,1_83 +#Lurtz, Servant of Isengard - 2021/10 +1_369,1_127 \ No newline at end of file diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/collection/CollectionSerializer.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/collection/CollectionSerializer.java index b98649352..28cc353c4 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/collection/CollectionSerializer.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/collection/CollectionSerializer.java @@ -67,6 +67,10 @@ public class CollectionSerializer { //September 2021 PC Promos _singleByteCountItems.add("9_53"); _singleByteCountItems.add("10_123"); + + //October 2021 PC Promos + _singleByteCountItems.add("1_368"); + _singleByteCountItems.add("1_369"); } private void fillDoubleByteItems() throws IOException { From e7aff360c0d39c8b5ae0097e3d368b816b9b7d68 Mon Sep 17 00:00:00 2001 From: Christian 'ketura' McCarty Date: Sat, 6 Nov 2021 02:24:51 -0500 Subject: [PATCH 4/8] Adding Pre-Hunters Expanded at the request of a community member --- .../gemp-lotr-server/src/main/resources/lotrFormats.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/gemp-lotr/gemp-lotr-server/src/main/resources/lotrFormats.json b/gemp-lotr/gemp-lotr-server/src/main/resources/lotrFormats.json index 2e71e5d18..172ae776d 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/resources/lotrFormats.json +++ b/gemp-lotr/gemp-lotr-server/src/main/resources/lotrFormats.json @@ -55,6 +55,14 @@ "4_304":"54_304", "7_49":"57_49", "7_96":"57_96", "8_1":"58_1", "10_2":"60_2", "10_11":"60_11", "10_91":"60_91", "11_31":"61_31", "11_100":"61_100", "11_114":"61_114", "11_132":"61_132", "13_188":"63_188", "15_64":"65_64"} }, + { + "name":"Pre-Hunters Expanded", + "code":"pre-hunters_expanded", + "sites":"SHADOWS", + "banned":["1_45", "1_138", "1_234", "1_311", "1_313", "1_316", "2_121", "3_17", "3_38", "3_42", "3_67", "3_68", "3_108", "3_113", "4_73", "7_49", "8_1", "10_2", "10_11", "10_91", "11_31", "11_100", "11_132"], + "restricted":["1_40", "1_80", "1_108", "1_139", "1_195", "1_248", "2_32", "2_75", "3_106", "4_276", "4_304"], + "set":[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14] + }, { "name":"Fellowship block - Set 1", "code":"fotr1_block", From 952e9a66b3c60aabba26f4be8a79a30bb007f282 Mon Sep 17 00:00:00 2001 From: Christian 'ketura' McCarty Date: Tue, 16 Nov 2021 08:31:59 -0600 Subject: [PATCH 5/8] Altered /ignore behavior to also include the last 50 banned users, which should cause banned user's chats to disappear from the chat --- .../gempukku/lotro/chat/ChatRoomMediator.java | 16 +++++++++---- .../gempukku/lotro/db/CachedPlayerDAO.java | 13 +++++++--- .../com/gempukku/lotro/db/DbPlayerDAO.java | 24 ++++++++++++++++--- .../java/com/gempukku/lotro/db/PlayerDAO.java | 2 ++ 4 files changed, 44 insertions(+), 11 deletions(-) diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatRoomMediator.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatRoomMediator.java index 75d697883..d67c81d59 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatRoomMediator.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatRoomMediator.java @@ -3,15 +3,18 @@ package com.gempukku.lotro.chat; import com.gempukku.lotro.PrivateInformationException; import com.gempukku.lotro.SubscriptionExpiredException; import com.gempukku.lotro.db.IgnoreDAO; +import com.gempukku.lotro.db.PlayerDAO; import com.gempukku.lotro.game.ChatCommunicationChannel; import org.apache.log4j.Logger; +import java.sql.SQLException; import java.util.*; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantReadWriteLock; public class ChatRoomMediator { private IgnoreDAO ignoreDAO; + private PlayerDAO playerDAO; private Logger _logger; private ChatRoom _chatRoom; @@ -25,14 +28,15 @@ public class ChatRoomMediator { private Map _chatCommandCallbacks = new HashMap(); private String welcomeMessage; - public ChatRoomMediator(IgnoreDAO ignoreDAO, String roomName, boolean muteJoinPartMessages, int secondsTimeoutPeriod, boolean allowIncognito, String welcomeMessage) { - this(ignoreDAO, roomName, muteJoinPartMessages, secondsTimeoutPeriod, null, allowIncognito); + public ChatRoomMediator(IgnoreDAO ignoreDAO, PlayerDAO playerDAO, String roomName, boolean muteJoinPartMessages, int secondsTimeoutPeriod, boolean allowIncognito, String welcomeMessage) { + this(ignoreDAO, playerDAO, roomName, muteJoinPartMessages, secondsTimeoutPeriod, null, allowIncognito); this.welcomeMessage = welcomeMessage; } - public ChatRoomMediator(IgnoreDAO ignoreDAO, String roomName, boolean muteJoinPartMessages, int secondsTimeoutPeriod, Set allowedPlayers, + public ChatRoomMediator(IgnoreDAO ignoreDAO, PlayerDAO playerDAO, String roomName, boolean muteJoinPartMessages, int secondsTimeoutPeriod, Set allowedPlayers, boolean allowIncognito) { this.ignoreDAO = ignoreDAO; + this.playerDAO = playerDAO; _logger = Logger.getLogger("chat."+roomName); _allowedPlayers = allowedPlayers; _channelInactivityTimeoutPeriod = 1000 * secondsTimeoutPeriod; @@ -43,13 +47,15 @@ public class ChatRoomMediator { _chatCommandCallbacks.put(command.toLowerCase(), callback); } - public List joinUser(String playerId, boolean admin) throws PrivateInformationException { + public List joinUser(String playerId, boolean admin) throws PrivateInformationException, SQLException { _lock.writeLock().lock(); try { if (!admin && _allowedPlayers != null && !_allowedPlayers.contains(playerId)) throw new PrivateInformationException(); - ChatCommunicationChannel value = new ChatCommunicationChannel(ignoreDAO.getIgnoredUsers(playerId)); + Set usersToIgnore = playerDAO.getBannedUsernames(); + usersToIgnore.addAll(ignoreDAO.getIgnoredUsers(playerId)); + ChatCommunicationChannel value = new ChatCommunicationChannel(usersToIgnore); _listeners.put(playerId, value); _chatRoom.joinChatRoom(playerId, value); final List chatMessages = value.consumeMessages(); diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/CachedPlayerDAO.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/CachedPlayerDAO.java index 43705a202..bc4b93499 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/CachedPlayerDAO.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/CachedPlayerDAO.java @@ -5,14 +5,13 @@ import com.gempukku.lotro.game.Player; import org.apache.commons.collections.map.LRUMap; import java.sql.SQLException; -import java.util.Collections; -import java.util.List; -import java.util.Map; +import java.util.*; public class CachedPlayerDAO implements PlayerDAO, Cached { private PlayerDAO _delegate; private Map _playerById = Collections.synchronizedMap(new LRUMap(500)); private Map _playerByName = Collections.synchronizedMap(new LRUMap(500)); + private Set _bannedUsernames = new HashSet<>(); public CachedPlayerDAO(PlayerDAO delegate) { _delegate = delegate; @@ -22,6 +21,7 @@ public class CachedPlayerDAO implements PlayerDAO, Cached { public void clearCache() { _playerById.clear(); _playerByName.clear(); + _bannedUsernames.clear(); } @Override @@ -74,6 +74,13 @@ public class CachedPlayerDAO implements PlayerDAO, Cached { return _delegate.findSimilarAccounts(login); } + @Override + public Set getBannedUsernames() throws SQLException { + if(_bannedUsernames.isEmpty()) + _bannedUsernames = _delegate.getBannedUsernames(); + return _bannedUsernames; + } + @Override public Player getPlayer(int id) { Player player = (Player) _playerById.get(id); diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/DbPlayerDAO.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/DbPlayerDAO.java index 8bfa841ae..d693b2efd 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/DbPlayerDAO.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/DbPlayerDAO.java @@ -7,9 +7,7 @@ import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; -import java.util.Date; -import java.util.LinkedList; -import java.util.List; +import java.util.*; public class DbPlayerDAO implements PlayerDAO { private final String validLoginChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_"; @@ -75,6 +73,26 @@ public class DbPlayerDAO implements PlayerDAO { } } + @Override + public Set getBannedUsernames() throws SQLException { + try { + try (Connection connection = _dbAccess.getDataSource().getConnection()) { + try (PreparedStatement statement = connection.prepareStatement("SELECT name FROM player WHERE type = '' ORDER BY ID DESC LIMIT 50")) { + + try (ResultSet resultSet = statement.executeQuery()) { + TreeSet users = new TreeSet(); + while (resultSet.next()) { + users.add(resultSet.getString(1)); + } + return users; + } + } + } + } catch (SQLException exp) { + throw new RuntimeException("Unable to get banned users", exp); + } + } + @Override public boolean banPlayerPermanently(String login) throws SQLException { try (Connection conn = _dbAccess.getDataSource().getConnection()) { diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/PlayerDAO.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/PlayerDAO.java index d4185a4fb..dbf87fd46 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/PlayerDAO.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/PlayerDAO.java @@ -4,6 +4,7 @@ import com.gempukku.lotro.game.Player; import java.sql.SQLException; import java.util.List; +import java.util.Set; public interface PlayerDAO { public Player getPlayer(int id); @@ -20,6 +21,7 @@ public interface PlayerDAO { public boolean removePlayerFlag(String login, String flag) throws SQLException; public List findSimilarAccounts(String login) throws SQLException; + public Set getBannedUsernames() throws SQLException; public Player loginUser(String login, String password) throws SQLException; From 931c1d09d2685439f4d1954f56729bdaf815019a Mon Sep 17 00:00:00 2001 From: Christian 'ketura' McCarty Date: Tue, 16 Nov 2021 09:16:00 -0600 Subject: [PATCH 6/8] Fixing changed constructor signatures --- .../java/com/gempukku/lotro/builder/ServerBuilder.java | 3 ++- .../main/java/com/gempukku/lotro/chat/ChatServer.java | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/builder/ServerBuilder.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/builder/ServerBuilder.java index 662d05c7a..5b1afe661 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/builder/ServerBuilder.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/builder/ServerBuilder.java @@ -89,7 +89,8 @@ public class ServerBuilder { extract(objectMap, CardSets.class))); objectMap.put(ChatServer.class, new ChatServer( - extract(objectMap, IgnoreDAO.class))); + extract(objectMap, IgnoreDAO.class), + extract(objectMap, PlayerDAO.class))); objectMap.put(LotroServer.class, new LotroServer( diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatServer.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatServer.java index 14104ea29..2c7c3f9b1 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatServer.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/chat/ChatServer.java @@ -3,6 +3,7 @@ package com.gempukku.lotro.chat; import com.gempukku.lotro.AbstractServer; import com.gempukku.lotro.PrivateInformationException; import com.gempukku.lotro.db.IgnoreDAO; +import com.gempukku.lotro.db.PlayerDAO; import java.util.Map; import java.util.Set; @@ -10,14 +11,16 @@ import java.util.concurrent.ConcurrentHashMap; public class ChatServer extends AbstractServer { private IgnoreDAO ignoreDAO; + private PlayerDAO playerDAO; private Map _chatRooms = new ConcurrentHashMap(); - public ChatServer(IgnoreDAO ignoreDAO) { + public ChatServer(IgnoreDAO ignoreDAO, PlayerDAO playerDAO) { this.ignoreDAO = ignoreDAO; + this.playerDAO = playerDAO; } public ChatRoomMediator createChatRoom(String name, boolean muteJoinPartMessages, int secondsTimeoutPeriod, boolean allowIncognito, String welcomeMessage) { - ChatRoomMediator chatRoom = new ChatRoomMediator(ignoreDAO, name, muteJoinPartMessages, secondsTimeoutPeriod, allowIncognito, welcomeMessage); + ChatRoomMediator chatRoom = new ChatRoomMediator(ignoreDAO, playerDAO, name, muteJoinPartMessages, secondsTimeoutPeriod, allowIncognito, welcomeMessage); try { chatRoom.sendMessage("System", "Welcome to room: " + name, true); } catch (PrivateInformationException exp) { @@ -30,7 +33,7 @@ public class ChatServer extends AbstractServer { } public ChatRoomMediator createPrivateChatRoom(String name, boolean muteJoinPartMessages, Set allowedUsers, int secondsTimeoutPeriod) { - ChatRoomMediator chatRoom = new ChatRoomMediator(ignoreDAO, name, muteJoinPartMessages, secondsTimeoutPeriod, allowedUsers, false); + ChatRoomMediator chatRoom = new ChatRoomMediator(ignoreDAO, playerDAO, name, muteJoinPartMessages, secondsTimeoutPeriod, allowedUsers, false); try { chatRoom.sendMessage("System", "Welcome to private room: " + name, true); } catch (PrivateInformationException exp) { From 22fad692690bce82c51f7988e69352b917eb0802 Mon Sep 17 00:00:00 2001 From: Christian 'ketura' McCarty Date: Tue, 16 Nov 2021 14:49:47 -0600 Subject: [PATCH 7/8] Added a set clone so that individual /ignores do not accidentally propagate to the entire server's blacklist --- .../src/main/java/com/gempukku/lotro/db/CachedPlayerDAO.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/CachedPlayerDAO.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/CachedPlayerDAO.java index bc4b93499..b7ac7e585 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/CachedPlayerDAO.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/db/CachedPlayerDAO.java @@ -78,7 +78,7 @@ public class CachedPlayerDAO implements PlayerDAO, Cached { public Set getBannedUsernames() throws SQLException { if(_bannedUsernames.isEmpty()) _bannedUsernames = _delegate.getBannedUsernames(); - return _bannedUsernames; + return new HashSet<>(_bannedUsernames); } @Override From b55682f316c81b0eb3e64d8102d8133757df163e Mon Sep 17 00:00:00 2001 From: Christian 'ketura' McCarty Date: Tue, 23 Nov 2021 00:51:42 -0600 Subject: [PATCH 8/8] Adding November 2021 PC Promos --- .../gemp-lotr-async/src/main/web/js/gemp-022/PC_Cards.js | 5 ++++- .../gemp-lotr-cards/src/main/resources/blueprintMapping.txt | 6 +++++- .../com/gempukku/lotro/collection/CollectionSerializer.java | 4 ++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/PC_Cards.js b/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/PC_Cards.js index b2638df55..95e10552c 100644 --- a/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/PC_Cards.js +++ b/gemp-lotr/gemp-lotr-async/src/main/web/js/gemp-022/PC_Cards.js @@ -159,6 +159,9 @@ var PCCards = { '10_123':'https://i.lotrtcgpc.net/promos/2021/09/PCPROMO_FA_10123.jpg', //October 2021 '1_368':'https://i.lotrtcgpc.net/promos/2021/10/PCPROMO_FA_01083.jpg', - '1_369':'https://i.lotrtcgpc.net/promos/2021/10/PCPROMO_FA_01127.jpg' + '1_369':'https://i.lotrtcgpc.net/promos/2021/10/PCPROMO_FA_01127.jpg', + //November 2021 + '8_123':'https://i.lotrtcgpc.net/promos/2021/11/PCPROMO_FA_08102.jpg', + '9_54':'https://i.lotrtcgpc.net/promos/2021/11/PCPROMO_FA_09014.jpg', } diff --git a/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt b/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt index 822e17d8b..1790bae1d 100644 --- a/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt +++ b/gemp-lotr/gemp-lotr-cards/src/main/resources/blueprintMapping.txt @@ -244,4 +244,8 @@ gl_theOneRing,1_2 #Servant of the Secret Flame - 2021/10 1_368,1_83 #Lurtz, Servant of Isengard - 2021/10 -1_369,1_127 \ No newline at end of file +1_369,1_127 +#Galadriel, Bearer of Wisdom - 2021/11 +9_54,9_14 +#Great Hill Troll - 2021/11 +8_123,8_102 diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/collection/CollectionSerializer.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/collection/CollectionSerializer.java index 28cc353c4..a2ba853b4 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/collection/CollectionSerializer.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/collection/CollectionSerializer.java @@ -71,6 +71,10 @@ public class CollectionSerializer { //October 2021 PC Promos _singleByteCountItems.add("1_368"); _singleByteCountItems.add("1_369"); + + //November 2021 PC Promos + _singleByteCountItems.add("8_123"); + _singleByteCountItems.add("9_54"); } private void fillDoubleByteItems() throws IOException {