OpenFusion/src
dongresource 23ab908366 Refuse to start if there are invalid NPC types in the JSONs
This fixes an issue where there server would start up fine even if NPC
types from a later build were found in the gruntwork file. Because of
the semantics of the C++ array indexing operator, the index into NPCData
in loadGruntworkPost() would silently create extra entries in the
nlohmann::json array, which would break future NPC type limit checks and
subsequently crash the server at the next invocation of /summonW, and
likely other places.

We fix this by refusing to start the server if any invalid NPC types are
found, because simply skipping them in the gruntwork file would silently
omit them from further writes to the gruntwork file, which would be
undesirable data loss.
2023-06-22 02:43:26 +02:00
..
core Reject network messages too small for the packet size field 2023-03-12 01:45:18 +01:00
db Enforce minimum supported libsqlite version 2023-03-19 01:41:07 +01:00
sandbox [seccomp] Whitelist rseq syscall 2022-11-15 02:30:20 +01:00
servers Use memcpy() instead of casting to load keys 2023-03-11 23:16:09 +01:00
structs Implement multiple-choice mission rewards 2020-12-23 13:50:12 -05:00
Abilities.cpp Remove redundant Mob map 2021-04-07 03:03:43 +02:00
Abilities.hpp [refactor] Move files to core/ and servers/ subdirectories 2021-03-17 20:16:48 +01:00
Buddies.cpp [refactor] Switch a bulk of the codebase to the new sendPacket() wrapper 2021-03-31 21:10:54 +02:00
Buddies.hpp Clean up indentation in a few places 2021-12-16 03:34:15 +01:00
BuiltinCommands.cpp Fix failed task QItem handling, implement /itemQ command 2021-05-14 14:24:35 -05:00
BuiltinCommands.hpp [refactor] Move files to core/ and servers/ subdirectories 2021-03-17 20:16:48 +01:00
Chat.cpp [refactor] Switch a bulk of the codebase to the new sendPacket() wrapper 2021-03-31 21:10:54 +02:00
Chat.hpp [refactor] Move files to core/ and servers/ subdirectories 2021-03-17 20:16:48 +01:00
Chunking.cpp Use a specialized null value for ChunkPos 2022-07-24 21:36:03 +02:00
Chunking.hpp Use a specialized null value for ChunkPos 2022-07-24 21:36:03 +02:00
Combat.cpp Combat: 3+ targets should automatically kick the connection 2023-03-01 11:18:41 -06:00
Combat.hpp [refactor] Move files to core/ and servers/ subdirectories 2021-03-17 20:16:48 +01:00
CustomCommands.cpp Use a specialized null value for ChunkPos 2022-07-24 21:36:03 +02:00
CustomCommands.hpp [refactor] Move files to core/ and servers/ subdirectories 2021-03-17 20:16:48 +01:00
Eggs.cpp Fix eggs not entering chunks and add update tabledata 2021-04-16 12:30:22 -04:00
Eggs.hpp Fix eggs not entering chunks and add update tabledata 2021-04-16 12:30:22 -04:00
Email.cpp Email: update the item slots via a ITEM_MOVE_SUCC packet 2023-02-28 15:15:57 -06:00
Email.hpp Handle email dumping separately from chat dumping 2021-12-03 22:23:59 +01:00
Entities.cpp Fix eggs not entering chunks and add update tabledata 2021-04-16 12:30:22 -04:00
Entities.hpp Use a specialized null value for ChunkPos 2022-07-24 21:36:03 +02:00
Groups.cpp [refactor] Remove redundant packet size checks 2021-03-31 21:10:54 +02:00
Groups.hpp Clean up indentation in a few places 2021-12-16 03:34:15 +01:00
Items.cpp Fix three-space indentation in a few places 2022-02-11 23:22:31 +01:00
Items.hpp altered event drop logic, fixed taro/fm logic 2021-04-26 11:26:00 -04:00
main.cpp Enforce minimum supported libsqlite version 2023-03-19 01:41:07 +01:00
Missions.cpp Fix quest item drop chances being shared between missions 2022-02-12 23:53:04 +01:00
Missions.hpp Fix quest item drop chances being shared between missions 2022-02-12 23:53:04 +01:00
MobAI.cpp Fix invisible group mobs bug 2021-09-19 04:55:10 +02:00
MobAI.hpp Added speed to CombatNPC 2021-04-29 19:20:53 -05:00
Nanos.cpp Fix missing validation in Nanos::nanoEquipHandler() 2022-02-08 12:48:58 +01:00
Nanos.hpp [refactor] Move files to core/ and servers/ subdirectories 2021-03-17 20:16:48 +01:00
NPC.hpp [WIP] Convert most of Chunking to Entity-based system 2021-03-31 22:28:27 +02:00
NPCManager.cpp Use a specialized null value for ChunkPos 2022-07-24 21:36:03 +02:00
NPCManager.hpp [refac] Move WarpLocation to Transport.hpp 2021-05-06 12:17:34 -04:00
Player.hpp Revamp CNShared logic 2022-07-24 21:36:03 +02:00
PlayerManager.cpp Remove redundant copy of Player object when added to the shard 2022-12-06 02:11:31 +01:00
PlayerManager.hpp Use a specialized null value for ChunkPos 2022-07-24 21:36:03 +02:00
PlayerMovement.cpp Add /path command 2021-05-06 12:17:34 -04:00
PlayerMovement.hpp [refactor] Extract PlayerMovement.cpp from PlayerManager.cpp 2021-03-13 02:59:18 +01:00
Racing.cpp Add a fallback to racingCancel if a respawn point isn't found 2021-05-14 14:10:19 -05:00
Racing.hpp Clean up indentation in a few places 2021-12-16 03:34:15 +01:00
Rand.cpp Use cryptographic RNG to generate the shard connection serial key 2022-07-24 21:36:03 +02:00
Rand.hpp Use cryptographic RNG to generate the shard connection serial key 2022-07-24 21:36:03 +02:00
settings.cpp Add undocumented config option to disable rapid fire anticheat 2022-11-26 19:36:10 +01:00
settings.hpp Add undocumented config option to disable rapid fire anticheat 2022-11-26 19:36:10 +01:00
TableData.cpp Refuse to start if there are invalid NPC types in the JSONs 2023-06-22 02:43:26 +02:00
TableData.hpp Add enabledpatches config option 2021-05-07 21:29:18 +02:00
Trading.cpp Sync player data to DB when trading and sending emails 2022-12-05 22:29:23 +01:00
Trading.hpp [refactor] Remove the word 'Manager' from most source files/namespaces 2021-03-17 20:16:43 +01:00
Transport.cpp Use a specialized null value for ChunkPos 2022-07-24 21:36:03 +02:00
Transport.hpp Only loop NPC movement if the NPC has a looping path assigned 2021-05-09 08:38:14 -04:00
Vendors.cpp Fix vehicle rental periods not showing up in vendor listings 2022-12-28 17:57:37 +01:00
Vendors.hpp Make sure a vendor is actually selling the item a player wants to buy 2021-06-20 10:15:02 -04:00