Commit Graph
100 Commits
Author SHA1 Message Date
P0nk 8c4d3092a7 Remove "Maple" prefix from MapleSessionCoordinator name 2021-08-18 15:47:01 +02:00
P0nk a8c6ef8934 Fix remote host not clearing after login
This would cause the client to disconnect whenever exiting the game
or returning to the login screen if the multiclient deterrent was enabled.
2021-08-18 11:58:52 +02:00
P0nk 435cafd381 Refactor MapleClient constructor, fix issue with multiclient check 2021-07-18 16:27:41 +02:00
P0nk 850d44d549 Minor cleanup - pom and encryption package 2021-07-18 16:05:34 +02:00
P0nk 5f149f0a27 Configure logging to be less verbose
Packet logging to the console is especially concise
2021-07-18 15:40:43 +02:00
P0nk 9e3f3cc036 Restructure "net" packages 2021-07-18 14:26:23 +02:00
P0nk 11e83522d6 Log packets in dedicated handlers instead of in encoder/decoder 2021-07-18 14:09:39 +02:00
P0nk ab03dd3109 Minor cleanup 2021-07-17 11:24:11 +02:00
P0nk 6e6fbf3be7 Consistently use Hwid domain object, fix login bypass
Login bypass (skip pin/pic) was broken due to an
inconsistency in hwid format.
2021-07-15 23:51:01 +02:00
P0nk 12a415e3d5 Add simple hex utils that delegate to Netty
The goal is to use libraries for this sort of common stuff
2021-07-15 23:48:47 +02:00
P0nk cce85ea663 Use Hwid for login bypass 2021-07-15 22:08:19 +02:00
P0nk a1ed7ed821 Merge branch 'master' into netty 2021-07-14 22:13:32 +02:00
P0nk c37278c650 Add missing "count" for mob skills
Fixes mass seduce. Thanks xinyifly.
2021-07-14 21:58:09 +02:00
P0nk 81393392ab Clean up Apache Mina, goodbye! 2021-07-13 22:10:01 +02:00
P0nk 94e1125eca Move some remaining bits and pieces to netty implementation, start cleaning up 2021-07-13 21:54:07 +02:00
P0nk fc694f1b0f Able to log incoming and outgoing packets 2021-07-13 21:50:19 +02:00
P0nk 3de827553e Fix idle state disconnecting regardless of received pong 2021-07-12 19:52:55 +02:00
P0nk 5a7d8e6b1f Use MapleClient for session management
First working version of the Netty implementation,
but there's a lot remaining to be done.
2021-07-11 18:56:45 +02:00
P0nk 86224f5152 Merge branch 'master' into netty 2021-07-11 15:20:00 +02:00
P0nk b8781ee209 Merge branch 'master' into fix-tools
# Conflicts:
#	pom.xml
2021-07-11 14:53:11 +02:00
P0nk 849d5c63cb Clean up remaining tools stuff 2021-07-11 14:50:29 +02:00
P0nk e3b22363d7 Remove undocumented tools written in C
I see no point in keeping them if all they do is cause confusion
2021-07-11 14:47:41 +02:00
P0nk 04c4fac58d Remove DropSpider tool
It was meant to crawl hidden-street.net, but it doesn't work
2021-07-11 14:45:52 +02:00
P0nk c437a08084 Move MapleSkillMakerReagentIndexer to main module 2021-07-11 14:44:15 +02:00
P0nk 93f067379c Move MapleSkillMakerFetcher to main module 2021-07-11 14:38:43 +02:00
P0nk 91b2901f05 Move MapleSkillbookStackUpdate to main module 2021-07-11 14:29:25 +02:00
P0nk 9563755f26 Move MapleSkillbookChanceFetcher to main module 2021-07-11 14:17:42 +02:00
P0nk 3e1b0dc4e3 Move MapleEquipmentOmnileveler to main module, use existing wz files 2021-07-11 14:05:18 +02:00
P0nk d09b237157 Move MapleDojoUpdate to main module, use existing wz files 2021-07-11 13:52:33 +02:00
P0nk 798ccecb2f Move MapleQuestMesoFetcher to main module 2021-07-11 12:08:40 +02:00
P0nk 56f3511395 Move MapleQuestItemFetcher to main module 2021-07-11 12:00:05 +02:00
P0nk f8ef9afdd9 Move MapleMobBookUpdate to main module 2021-07-11 11:46:40 +02:00
P0nk c6e915448e Move MapleMobBookIndexer to main module 2021-07-11 11:40:59 +02:00
P0nk cbb0f7f09b Move MapleGachaponItemidRetriever to main module 2021-07-11 11:31:22 +02:00
P0nk 6d49ab45c3 Move MapleWorldMapChecker to main module 2021-07-11 11:15:03 +02:00
P0nk 932ed9f784 Move MapleMapInfoRetriever to main module 2021-07-11 11:08:16 +02:00
P0nk e2f1981dc4 Move MapleIdRetriever to main module 2021-07-11 10:54:29 +02:00
P0nk a0215cd3f4 Move MapleMapFieldLimitChecker to main module 2021-07-10 23:42:25 +02:00
P0nk 26e98d012f Move MapleEventMethodFiller to main module 2021-07-10 23:35:43 +02:00
P0nk 1f94a3b545 Move MapleQuestlineFetcher to main module 2021-07-10 23:26:05 +02:00
P0nk fc7e97a355 Move MapleQuestItemCountFetcher to main module 2021-07-10 23:18:20 +02:00
P0nk fdef9e37bb Move MapleNoItemNameFetcher to main module 2021-07-10 23:10:22 +02:00
P0nk a088fd29b7 Move MapleNoItemIdFetcher to main module 2021-07-10 22:57:38 +02:00
P0nk b5ff5f19fc Move MapleMesoFetcher to main module 2021-07-10 22:51:57 +02:00
P0nk 7af3d6924e Move MapleReactorDropFetcher to main module 2021-07-10 22:43:05 +02:00
P0nk e6fef246cb Move MapleEmptyItemWzChecker to main module 2021-07-10 22:10:21 +02:00
P0nk 08d2b40cc4 Move MapleCouponInstaller to main module, use wz files directly 2021-07-10 20:34:00 +02:00
P0nk 45f3cfdfa6 Move MapleCodeCouponGenerator to main module 2021-07-10 20:17:47 +02:00
P0nk e93db8b48f Move MapleCashVegaChecker to main module 2021-07-10 20:02:26 +02:00
P0nk 5b4815f173 Move MapleCashDropFetcher to main module 2021-07-10 19:56:17 +02:00
P0nk 0af167d174 Move MapleCashCosmeticsFetcher to main module 2021-07-10 19:38:00 +02:00
P0nk da66e7614d Move MapleCashCosmeticsChecker to main module 2021-07-10 19:20:25 +02:00
P0nk fdd2ef7b3a Move MapleBossHpBarFetcher to main module 2021-07-10 18:28:09 +02:00
P0nk a7cf7b90ce Clean up the old MapleArrowFetcher 2021-07-10 18:12:53 +02:00
P0nk bc6593fd81 Move MapleArrowFetcher to the main module 2021-07-10 18:12:36 +02:00
P0nk 14a405adb2 Consistent handling of wz files and their paths 2021-07-10 17:49:04 +02:00
P0nk fcb43af8e3 Minor refactors 2021-07-10 13:52:19 +02:00
P0nk 0e98abff41 Minor renaming and refactoring 2021-06-29 20:27:32 +02:00
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 c4c5700d32 Add basic unit tests for ByteBufOutPacket 2021-06-21 21:45:30 +02:00
P0nk 4fd64884f2 Simplify getBytes and add tests for it 2021-06-21 21:45:06 +02:00
P0nk 6d02a95273 Simplify test setup for written bytes 2021-06-20 23:02:01 +02:00
P0nk 926371c9a7 Add unit tests for ByteBufInPacket 2021-06-20 22:53:20 +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
P0nk 4dc0935391 Reformat MapleClient
Now uses 4 space indentation
2021-06-08 19:32:06 +02:00
P0nk ef12275f35 Move db stuff to its own directory, update README 2021-05-24 20:29:59 +02:00
P0nk c514c303c7 Increase db init timeout
60 seconds might not be enough during the initial
Docker db setup, but 90 seconds should be plenty.
2021-05-24 20:26:18 +02:00
P0nk 75078a5fa1 Add sql script for basic admin account 2021-05-24 08:25:41 +02:00
P0nk d9d63a1b44 Refactor event max lobbies - is no longer a range
It's no longer a range because it:
1. Makes no sense for it to be a range
2. Makes for simpler scripts since returning a JS array is a hassle with Graal
2021-05-21 20:54:51 +02:00
P0nk 095008a20f Fix event scripts' getEligibleParty
Cannot return a JavaScript array straight up
(otherwise you'll get a PolyglotMap):
it has to be converted first from inside the script.
2021-05-21 19:09:40 +02:00
P0nk bcefd42093 Handle reactor scheduling outside of script
No longer need to make all invocations synchronized
2021-05-21 08:15:01 +02:00
P0nk f9aec05779 Update GraalVM to latest version (21.1.0) 2021-05-20 22:22:26 +02:00
P0nk 406c43b0ec Make all event script invocations thread safe
Simple solution for avoiding concurrent access
of the same evaluated script, but I would be surprised
if performance is not affected for the worse.
The same Invocable is used for all instances of an event,
so more active instances means higher contention of the single Invocable.
Hopefully the number of instances required for it to be noticeably slow
is high enough that this is not an issue.
2021-05-20 22:03:11 +02:00
P0nk cdfb7074ec Make all reactor script invocations thread safe
Might be a bit overkill to force synchronization
for every single method invocation when the only
scheduling done in reactor scripts are:
- 5511000 (summon Targa)
- 5511001 (summon Scarlion)
2021-05-20 21:30:46 +02:00
P0nk 2ce6041ef8 Add thread safe wrapper for Invocable 2021-05-20 21:00:48 +02:00
P0nk 3cda07db52 Merge branch 'master' into java-16-and-graal
# Conflicts:
#	Dockerfile
2021-05-19 18:03:57 +02:00
P0nk 5d4a2506e8 Update README with Java 16 2021-04-18 16:01:10 +02:00
P0nk 4b03b3c4ac Update Dockerfile to Java 16 2021-04-18 12:40:11 +02:00
P0nk cd6415b061 Enforce implementation of PortalScript 2021-04-18 12:31:01 +02:00