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
P0nk
48d9aaa871
Clean up Client - visibleWorlds & canRequestCharlist
...
canRequestCharlist is a relic from the past when "View all char"
functionality was hacked together with wrong packets.
visibleWorlds I'm less sure about. I suppose it's useful if you add world
(via command) while someone is still on the login screen.
But the functionality of adding/removing worlds live is a recipe for disaster
and will eventually (likely) be removed.
2023-08-06 20:02:39 +02:00
P0nk
f44083aeba
Refactor Client#finishLogin
2023-08-06 17:26:34 +02:00
P0nk
810dbcc1d7
Remove "reward points" feature
2023-08-06 16:55:58 +02:00
P0nk
449ab01bc2
Remove "vote points" feature
2023-08-06 16:55:34 +02:00
P0nk
2686b2b02d
Disconnect client by throwing exception in handler
...
This makes it easier to add checks in handlers, which should improve security over time.
I think this approach is more readable and testable than calling Client#disconnect straight up,
while it also decentralizes the handling.
2023-08-06 15:48:49 +02:00
P0nk
e9819fac87
Save cooldowns and diseases as part of normal flow
2023-08-04 16:34:59 +02:00
P0nk
4e39142fb3
Direct almost all chr saving through CharacterSaver
...
Client#disconnectInternal remains.
Had to remove some configurable save points to keep it simple.
2023-08-04 16:14:51 +02:00