Swapped from list to set to prevent duplicates
Use a set instead, clone instead of adding directly to the list.
This commit is contained in:
@@ -307,6 +307,6 @@ public class ServerConfig {
|
||||
//Event End Timestamp
|
||||
public long EVENT_END_TIMESTAMP;
|
||||
|
||||
//Custom NPC overrides. NPC ID to Name pair.
|
||||
//Custom NPC overrides. List of NPC IDs.
|
||||
public List<Integer> NPCS_SCRIPTABLE = new ArrayList<>();
|
||||
}
|
||||
|
||||
@@ -408,14 +408,16 @@ public final class PlayerLoggedinHandler extends AbstractMaplePacketHandler {
|
||||
}
|
||||
|
||||
if (YamlConfig.config.server.USE_NPCS_SCRIPTABLE) {
|
||||
List<Integer> npcsIds = YamlConfig.config.server.NPCS_SCRIPTABLE;
|
||||
|
||||
// Create a set to remove duplicate entries if they exist.
|
||||
Set<Integer> npcsIds = new HashSet<>(YamlConfig.config.server.NPCS_SCRIPTABLE);
|
||||
|
||||
// Any npc be specified as the rebirth npc. Allow the npc to use custom scripts explicitly.
|
||||
if (YamlConfig.config.server.USE_REBIRTH_SYSTEM) {
|
||||
npcsIds.add(YamlConfig.config.server.REBIRTH_NPC_ID);
|
||||
}
|
||||
|
||||
c.announce(MaplePacketCreator.setNPCScriptable(YamlConfig.config.server.NPCS_SCRIPTABLE));
|
||||
c.announce(MaplePacketCreator.setNPCScriptable(npcsIds));
|
||||
}
|
||||
|
||||
if(newcomer) player.setLoginTime(System.currentTimeMillis());
|
||||
|
||||
@@ -8326,7 +8326,7 @@ public class MaplePacketCreator {
|
||||
* @param scriptableNpcIds Ids of npcs to enable scripts for.
|
||||
* @return a packet which makes the npc's provided scriptable.
|
||||
*/
|
||||
public static byte[] setNPCScriptable(List<Integer> scriptableNpcIds) { // thanks to GabrielSin
|
||||
public static byte[] setNPCScriptable(Set<Integer> scriptableNpcIds) { // thanks to GabrielSin
|
||||
MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();
|
||||
mplew.writeShort(SendOpcode.SET_NPC_SCRIPTABLE.getValue());
|
||||
mplew.write(scriptableNpcIds.size());
|
||||
|
||||
Reference in New Issue
Block a user