Commit Graph
100 Commits
Author SHA1 Message Date
P0nk da4a467453 Set in transition on log in, now able to enter the game
The state is not set properly on logout though, so once you log out you can't log back in
2024-09-29 08:22:26 +02:00
P0nk 0bb14e415e Log in through AccountService on player login 2024-09-29 07:52:42 +02:00
P0nk 0a8591aa08 Merge "serverTransition" and "inTransition" fields
They serve the same purpose, no point in separating
2024-09-29 07:43:47 +02:00
P0nk 813768ec47 Remove AddWorld,AddChannel,RemoveWorld,RemoveChannel cmds
These are incredibly error prone and hinder the database migration work.
2024-09-29 07:32:20 +02:00
P0nk 5595f5763b Log in through AccountService 2024-09-28 18:30:41 +02:00
P0nk 1be775394e Disable slow tests that don't provide much value 2024-09-28 18:30:31 +02:00
P0nk 55c9d4abbb Log out through AccountService 2024-09-28 18:26:23 +02:00
P0nk 93bbe868cb Use LoginState everywhere 2024-09-28 07:02:05 +02:00
P0nk ec39f0fa06 Avoid additional db query to get login state during login 2024-09-28 06:55:45 +02:00
P0nk 439280947c Save gender to PG 2024-09-27 23:20:02 +02:00
P0nk 5abae50be5 Rework login, get account from PG 2024-09-27 22:52:12 +02:00
P0nk 082e0c0486 Save chr slots to PG 2024-09-27 17:59:26 +02:00
P0nk 2044166967 Save pic to PG 2024-09-27 17:34:36 +02:00
P0nk f33d4fbc1c Save pin to PG 2024-09-27 06:50:07 +02:00
P0nk 0f2ef341ce Save accepted ToS to PG 2024-09-26 21:14:52 +02:00
P0nk c7f835da0d Add DatabaseTest to easily test repositories 2024-09-26 19:51:18 +02:00
P0nk 647e67f6e8 Auto-create account in both MySQL and PG 2024-09-26 07:59:27 +02:00
P0nk bf9c02bc16 Fix failed chr save due to null jail expiration 2024-09-26 07:59:11 +02:00
P0nk 1d5c26e67c Remove SHA-512 password migration 2024-09-26 06:48:13 +02:00
P0nk b85233359f Save new chr to PG (doesn't work yet because no account) 2024-09-25 18:31:38 +02:00
P0nk 7335914695 Simplify sp saving 2024-09-25 18:07:50 +02:00
P0nk b4e673baab Make some chr stats nullable to ease migration to PG 2024-09-25 17:48:12 +02:00
P0nk 767c4402e7 Route chr creation to dummy CharacterCreator 2024-09-25 07:21:27 +02:00
P0nk a9967d53b1 Fix chr loading due to "monster_card" table not found 2024-09-25 06:58:19 +02:00
P0nk 00fc3ed1a1 Handle created chr with spec 2024-09-25 06:33:03 +02:00
P0nk 98d76ad45e Prepare centralized chr creation 2024-09-25 06:32:43 +02:00
P0nk 0c9643fd7e CharacterSaver integration test with Testcontainers 2024-09-15 11:41:03 +02:00
P0nk ce5dee39ae Reorder migration scripts - move acc+chr creation earlier 2024-09-14 17:48:20 +02:00
P0nk e57d2a9ee2 Create account, chr tables & save chr to Postgres 2024-09-14 17:44:48 +02:00
P0nk f827e23ccc Clean up rewardpoints 2024-09-14 15:39:06 +02:00
P0nk f8726640c3 Remove configurable language feature 2024-09-14 15:34:01 +02:00
P0nk 4778482cdd Remove quest point feature 2024-09-14 15:02:51 +02:00
P0nk 7297cd09b6 Separate PG from MySQL chr saving 2024-09-14 14:56:15 +02:00
P0nk 08eeeb54dc Rename ...Dao -> ...Repository 2024-09-14 12:06:09 +02:00
P0nk abbec8120e Restructure chr saving - gather stats in record 2024-09-14 11:57:54 +02:00
P0nk 23a8a33e5f Move transaction handling to CharacterSaver 2024-09-13 23:59:29 +02:00
P0nk 758347f7bc Small refactor of disconnectInternal for readability 2024-09-13 23:23:35 +02:00
P0nk 1b6c0167de Fix buddy staying online in buddy list if dc in cash shop 2024-09-13 23:17:42 +02:00
P0nk 8bce0922d9 Fix broken global drops since merge from master 2024-09-13 23:02:12 +02:00
P0nk f41268cdde Handle disconnect solely in TransitionService 2024-09-13 22:59:55 +02:00
P0nk 719b079cbc Refactor unnecessary wrapper boolean 2024-09-13 21:47:52 +02:00
P0nk 7bd5fa387d Merge branch 'refs/heads/master' into feat/postgresql-database 2024-09-13 21:29:50 +02:00
P0nk 09a75e89c9 Merge branch 'refs/heads/master' into feat/postgresql-database
# Conflicts:
#	src/main/java/server/life/MonsterInformationProvider.java
#	src/main/java/server/maps/MapleMap.java
2024-09-03 17:45:27 +02:00
P0nk 559fe2d550 Merge branch 'refs/heads/master' into feat/postgresql-database
# Conflicts:
#	config.yaml
#	docker-compose.yml
#	pom.xml
#	src/main/java/client/Character.java
#	src/main/java/client/Client.java
#	src/main/java/client/MonsterBook.java
#	src/main/java/client/command/commands/gm0/BuyBackCommand.java
#	src/main/java/client/processor/stat/AssignAPProcessor.java
#	src/main/java/config/ServerConfig.java
#	src/main/java/net/server/channel/Channel.java
#	src/main/java/net/server/channel/handlers/AbstractDealDamageHandler.java
#	src/main/java/net/server/channel/handlers/BuddylistModifyHandler.java
#	src/main/java/net/server/channel/handlers/CloseRangeDamageHandler.java
#	src/main/java/net/server/channel/handlers/EnterMTSHandler.java
#	src/main/java/net/server/channel/handlers/NPCTalkHandler.java
#	src/main/java/net/server/channel/handlers/RangedAttackHandler.java
#	src/main/java/net/server/channel/handlers/SummonDamageHandler.java
#	src/main/java/net/server/channel/handlers/UseCashItemHandler.java
#	src/main/java/net/server/handlers/login/CreateCharHandler.java
#	src/main/java/net/server/world/World.java
#	src/main/java/scripting/npc/NPCConversationManager.java
#	src/main/java/server/ItemInformationProvider.java
#	src/main/java/server/life/Monster.java
#	src/main/java/server/life/MonsterInformationProvider.java
#	src/main/java/server/maps/MapleMap.java
#	src/main/java/tools/PacketCreator.java
#	src/test/java/service/NoteServiceTest.java
#	src/test/java/testutil/Any.java
2024-09-02 20:43:55 +02:00
P0nk dbf1a1bb36 Fix global drops thread issue
This randomly caused global drops to stop working after a while.
Originally reported by Crabo of MapleHorizons.
2024-08-28 21:22:47 +02:00
P0nk 5064ee936a Fix staggered exploding mesos
Thanks teto: "the staggering should only go up to 400ms [attack.attackDelay + (index++ % 5) * 100], and the total delay should be capped at 1000ms according to the BMS implementation"
2024-08-27 07:41:24 +02:00
P0nk acac203e42 Scheduler free timing for reactor drops 2024-08-20 20:32:33 +02:00
P0nk cdd1c8cb61 Proper timing on removing exploded meso
No longer using scheduling on server side but rather
a delay value inherent to the "remove item from map" packet.
2024-08-20 20:13:01 +02:00
P0nk 439753eb6d Fix drop delay for Meso Explosion 2024-08-20 19:44:16 +02:00
P0nk e30700de66 Fix drop delay from summon attack 2024-08-17 21:27:43 +02:00
P0nk 994d1723b6 Remove unnecessary "spawn loot on animation" feature
No longer needed since item drop timing is now dictated by the client
since two commits back.
2024-08-17 19:14:04 +02:00
P0nk 2d40a89c55 Overload damageMonster for when no delay is needed 2024-08-17 19:13:38 +02:00
P0nk 802cc2b5f5 Use delay from packets for drop timing 2024-08-17 19:13:36 +02:00
P0nk 2ffca90d29 Add attack delay to AttackInfo
Meant to be used in item drop packet for timing handled by the client
rather than scheduling item drop packets on the server.
2024-08-14 07:45:06 +02:00
P0nk cad10c4d5c Remove rebirth system 2024-07-19 17:16:14 +02:00
P0nk 3850b63cec Add migration for <v0.14.0 to fix shop dc 2024-07-17 19:24:19 +02:00
P0nk a7df8a4f49 Remove banish scroll from WZ files 2024-07-17 18:50:44 +02:00
P0nk 7071b13e41 Remove banish scroll from shops 2024-07-17 18:39:50 +02:00
P0nk 2324ae7f9e Refactor BanishInfo - make it a record 2024-07-17 18:11:50 +02:00
P0nk 402163c33d Remove "banishable town scroll" feature 2024-07-17 17:45:38 +02:00
P0nk 3356e42e71 Remove "spikes avoid banish" feature 2024-07-16 20:17:21 +02:00
P0nk 205e263255 Specify required Java version 2024-07-16 20:16:26 +02:00
P0nk 5a4bdd343c Fix Energy charge crashing certain other players
Crabo in #bug-report (2024-06-10):
"(...) this will crash everyone in the map besides the bucc and 1 character, when a bucc (or TB) charges energy and a character with an ID that's a multiple of 102 is in the same map (and the energy reaches that number so if character ID is 204 it will reach that after 2 hits and DC the whole map besides the bucc and that char with id 204).
 Thanks to others for helping me fix it. Thought I'd report it!"
2024-06-16 19:09:21 +02:00
P0nk 1791365e0f Fix able to get package from Cash shop surprise
Packages aren't real items and crash the client.
2024-06-16 16:06:29 +02:00
P0nk 5aeed01e38 Fix not using the selected Cash shop surprise
If you have multiple, it would always use the first one. Now it uses whichever you select (as expected).
2024-06-16 15:08:48 +02:00
P0nk 6ab1af99da Add tests for CashShopSurpriseHandler 2024-06-16 13:56:54 +02:00
P0nk c7b2d218ef Fix count not being updated after last Cash shop surprise 2024-06-16 12:59:30 +02:00
P0nk 01ae462b72 Refactor CashShop - add constants for cash types 2024-06-16 12:19:16 +02:00
P0nk b67b29def5 Fix cash shop surprise count not properly updated on usage
This reverts the hacky solution made in db82cbcfae
2024-06-15 08:31:24 +02:00
P0nk 4e743128e9 Remove all wildcard imports 2024-05-22 08:33:44 +02:00
P0nk 2ed35db216 Add IntelliJ code style settings (no wildcard imports) 2024-05-22 08:06:46 +02:00
P0nk 9fe6ba4483 Add new wz files zip (reduced size by ~400mb)
Removed: Base.wz, Effect.wz, Morph.wz, Sound.wz, TamingMob.wz
2024-05-21 22:47:47 +02:00
P0nk dee8651e61 Add DevtestCommand to easily test without restarting server 2024-05-21 21:36:54 +02:00
P0nk 948a9de667 Remove Spirit of Rock die sound 2024-05-21 20:23:34 +02:00
P0nk d55437ddf3 Remove subway whistle 2024-05-21 19:56:09 +02:00
P0nk 98fd8c13d4 Remove brazil anthem 2024-05-21 19:54:30 +02:00
P0nk 04a92fe0c1 Remove buyback custom feature 2024-05-21 19:44:25 +02:00
P0nk dc1a712f52 Re-add section about running from jar 2024-05-10 22:26:04 +02:00
P0nk 7a6d3e1b68 Add feature request issue template 2024-05-10 21:29:09 +02:00
P0nk 970fb3155f Complement pom.xml 2024-05-09 22:29:15 +02:00
P0nk 0eb78e2d9e Use root db user by default 2024-05-09 22:08:28 +02:00
P0nk 7d42870abd Fix sql script not being runnable on newer versions of MySQL 2024-05-09 21:26:09 +02:00
P0nk c7b9e0eee3 Major rewrite of README 2024-05-09 21:11:53 +02:00
P0nk c5089881b3 Tidy pom
mvn tidy:pom
2024-05-09 14:24:03 +02:00
P0nk 9c1406f75d Update pull request template 2024-05-09 12:33:50 +02:00
P0nk 92226483be Merge branch 'refs/heads/master' into feat/project-update 2024-05-09 12:30:14 +02:00
P0nk f61fee829a Upgrade Java version and dependencies 2024-05-09 11:45:16 +02:00
P0nk 851b57e8ef Fix able to gain infinite slots with clean slate scroll
And remove a GM config option.
Thanks Crabo for the suggested solution.
2024-02-05 08:34:36 +01:00
P0nk a7d03cf8c0 Merge branch 'master' into feat/postgresql-database 2024-02-04 15:12:14 +01:00
P0nk 033d91ed71 Merge branch 'master' into feat/postgresql-database
# Conflicts:
#	config.yaml
#	src/main/java/config/ServerConfig.java
2023-11-08 21:21:07 +01:00
P0nk 0aee9d7c3f Fix unable to create playernpc
The initialization of the running world counters depended on worlds already having been initialized, so I made that dependency more explicit.
2023-09-19 12:56:51 +02:00
P0nk a49c1703ae Remove developer player npc 2023-09-18 23:26:37 +02:00
P0nk 392a350eab Merge branch 'master' into feat/postgresql-database
# Conflicts:
#	docker-compose.yml
2023-08-20 18:30:52 +02:00
P0nk f33df59f49 Move some Client#forceDisconnect calls to TransitionService 2023-08-11 22:00:33 +02:00
P0nk cd75e85bec Move some autoban logic to new BanService 2023-08-10 22:52:09 +02:00
P0nk cb31121fe7 Disconnect client with TransitionService 2023-08-10 21:58:55 +02:00
P0nk d5682a5f65 Add client disconnection logic to TransitionService
Problem: disconnecting requires access to CharacterSaver,
which is not available in Client.
Having it in a service like this solves that problem.

Next step is to migrate all calls to Client#disconnect and Client#forceDisconnect
to their TransitionService counterparts.
2023-08-08 21:51:12 +02:00
P0nk f6d06ba82a Extract "char list" from Client to handler 2023-08-06 21:14:32 +02:00
P0nk bbee8d7caa Merge chr name + id wrappers into new CharacterIdentity record 2023-08-06 20:35:26 +02:00
P0nk 5b5888cf65 Remove unused stuff in Client 2023-08-06 20:11:32 +02:00