Commit Graph

281 Commits

Author SHA1 Message Date
P0nk
828c3c5345 Add Hwid class for "nibble hwid" part of "remote host" 2021-06-29 20:26:14 +02:00
P0nk
d34798649b Add dedicated host hwid cache, further refactor session coordinator 2021-06-29 08:35:21 +02:00
P0nk
671313ab57 Encapsulate hwid validation 2021-06-29 08:29:29 +02:00
P0nk
50e2b909f1 Use Instant instead of long for time measurement 2021-06-28 12:29:19 +02:00
P0nk
5bc2f47883 Move session init management to new class 2021-06-28 12:00:09 +02:00
P0nk
69a4dd8c6d Factor out duplicated code that adds remote host to pool 2021-06-28 11:02:06 +02:00
P0nk
b35c4d3de8 Handle hwid assocation expiry in dedicated class 2021-06-28 10:37:06 +02:00
P0nk
2c18f7a4a8 Move the remaining session database logic 2021-06-27 21:35:43 +02:00
P0nk
8041ccd6bd Move some session database logic to dedicated class
I need to clean up this class before attempting
to migrate away from IoSession for session handling.
2021-06-27 09:44:55 +02:00
P0nk
b19f65f7ee Encapsulate ip address logic in new class 2021-06-26 23:40:59 +02:00
P0nk
f6aca2018e Packet sending during Netty migration 2021-06-25 14:43:05 +02:00
P0nk
80cacd609a Disconnect client if idle
Thanks SharpAceX for Guida,
which I used as a reference.
2021-06-24 22:09:21 +02:00
P0nk
5651bee2b5 Move client transition state and hostAddress to fields 2021-06-23 19:03:54 +02:00
P0nk
9638d5c417 Initial Netty implementation for networking
Split into 1 LoginServer and 1 ChannelServer per channel.

There is still a lot of cleanup and refactoring to be done.
Currently, the reliance on IoSession holding client state
is the most pressing issue to be addressed.
2021-06-23 18:20:08 +02:00
P0nk
0fa6ad0e24 Refactor PacketProcessor, split into more methods 2021-06-23 16:09:43 +02:00
P0nk
5431150362 Set up packet codec and channel initialization 2021-06-22 20:32:51 +02:00
P0nk
171215e653 Clean up old In/OutPacket 2021-06-22 17:15:19 +02:00
P0nk
442684d852 Merge branch 'master' into netty
# Conflicts:
#	pom.xml
2021-06-21 22:15:00 +02:00
P0nk
72ff8d563b Refactor packet string charset 2021-06-21 22:03:20 +02:00
P0nk
4fd64884f2 Simplify getBytes and add tests for it 2021-06-21 21:45:06 +02:00
P0nk
aaf4b558f3 Finish InPacket & OutPacket implementations 2021-06-20 21:27:50 +02:00
P0nk
f3faee2e16 Add OutPacket interface and ByteBuf implementation
Replacement for LittleEndianWriter, GenericLittleEndianWriter,
and MaplePacketLittleEndianWriter.
2021-06-20 21:20:39 +02:00
P0nk
00abbb4acd Add InPacket interface and ByteBuf implementation
Replacement for LittleEndianAccessor, SeekableLittleEndianAccessor,
GenericLittleEndianAccessor, and GenericSeekableLittleEndianAccessor.
2021-06-20 21:20:38 +02:00
P0nk
23bad12f8c Netty WIP
Implementing ByteBuf backed In/OutPacket first in a separate branch
2021-06-15 22:12:40 +02:00
James McDowell
e967294eb9 Add back in NPC conversation names
The names of the npc conversations were useful for context. Added them  back in.
2021-05-26 19:41:27 +10:00
James McDowell
9128329d37 Swapped from list to set to prevent duplicates
Use a set instead, clone instead of adding directly to the list.
2021-05-20 19:16:22 +10:00
James McDowell
cff3d3df56 Added the ability to specify a custom rebirth npc id, which is automatically added to the list of scriptable npcs for overriding. Changed scriptable npcs to use config instead of a constants file, so that users can easily modify them without digging into the code and requiring a rebuild. 2021-05-16 14:46:38 +10:00
James McDowell
45ca7009c8 Updated to allow a generic rebirth npc id to be passed through and used for rebirthing if it's enabled. 2021-05-16 10:32:51 +10:00
RubenD96
ed8e6775df WhisperHandler reformatting the case of target == null 2021-04-23 15:11:53 +02:00
RubenD96
ade50bad5e Chase functionality (/c name) to warp to the exact location of the target 2021-04-22 22:03:59 +02:00
RubenD96
f6452b2320 Reformat ChangeMapHandler before editing 2021-04-22 21:55:49 +02:00
RubenD96
215abb3198 Small bugfix for WhisperHandler after testing 2021-04-22 21:55:32 +02:00
RubenD96
24cfbcce40 Untested rework of WhisperHandler 2021-04-20 17:25:52 +02:00
P0nk
5a5110d905 Use existing connection for loading new year + family
Move async tasks earlier for lower chance of having to wait
2021-04-16 20:41:17 +02:00
P0nk
8335e77f2e Load developer room async on startup 2021-04-13 22:44:20 +02:00
P0nk
dd7c2a697a Load skillbook source information async on startup 2021-04-13 08:14:11 +02:00
P0nk
055ee01ae9 Load quests async on startup 2021-04-12 22:05:57 +02:00
P0nk
a59b55db57 Load cash items async on startup 2021-04-12 21:44:47 +02:00
P0nk
415376ce08 Load skills async on startup 2021-04-12 21:06:05 +02:00
P0nk
ab56d18bd3 Log startup time 2021-04-11 14:02:25 +02:00
P0nk
68239bc0b5 Make database operations during startup consistent
Use the same Connection. and log things in a similar fashion
2021-04-11 13:52:35 +02:00
P0nk
858fcd2a3a Actually perform name changes & world transfers on startup
No changes were being committed
2021-04-11 13:05:12 +02:00
ronancpl
d4e4150a6e cleanup: adjust syntax 2021-04-10 09:43:05 -03:00
ronancpl
7a3d5d2b94 Allow local/LAN/WAN login-phase connections
Allow clients connecting from different IP domains (local/LAN/WAN) to get past login phase and clean unnecessary local server check.
2021-04-09 20:54:53 -03:00
P0nk
a5b42b8a43 cleanup: use primitive type instead of wrapper type 2021-04-08 17:49:22 +02:00
P0nk
202f2d8bc5 cleanup: use bulk operation instead of iteration 2021-04-08 17:49:21 +02:00
P0nk
3434c7334b cleanup: remove redundant cast 2021-04-08 17:39:55 +02:00
P0nk
ebb3aa7ba3 cleanup: prefer List#sort over Collections#sort 2021-04-08 07:44:02 +02:00
P0nk
5730b3b42d cleanup: use implicit generic type with diamond operator 2021-04-08 07:42:10 +02:00
P0nk
8aa44711e3 cleanup: use Integer#parseInt where applicable 2021-04-08 07:40:42 +02:00