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
P0nk
e52f646558
Fix batch insert monster cards
...
batch.add() clears all bindings, unlike vanilla JDBC
2023-08-04 15:38:14 +02:00
P0nk
02d4ff524a
Fix global drops not dropping
...
No longer able to shuffle the list since DropProvider
return an unmodifiable list in the case of global drops.
2023-08-04 15:23:02 +02:00
P0nk
05b7ec77c8
Add ChannelService to handle cc'ing
2023-08-04 15:01:49 +02:00
P0nk
f6aa8ceba6
Rewrite MonsterBook, touch up chr loading
...
Temporarily disabled loading monster cards from db
2023-07-25 21:27:35 +02:00
P0nk
b3ec325e95
Add monster card table and initial dao
2023-07-25 18:46:03 +02:00
P0nk
e31465a1b5
Add MonsterCard
2023-07-25 17:52:38 +02:00
P0nk
84ad5b4db8
Remove scroll generator (custom feature)
...
This allowed me to remove the getCardTierSize db query
2023-07-25 17:20:16 +02:00
P0nk
855b66c459
Merge branch 'master' into feat/postgresql-database
2023-07-25 17:03:35 +02:00
Ponk
d307eff71f
Merge pull request #177 from LynxStar/patch/mini-dungeons #patch
...
Fix mini-dungeon portals for parties
2023-07-10 23:09:51 +02:00
Arthur Charlton
b935725096
Handle the potentially null portal based on the name.
...
Matches the behavior of warping a character to a named portal.
2023-07-10 17:01:48 -04:00
Arthur Charlton
07eb0f5e8e
Untangle nested control flow conditions.
2023-07-05 14:16:09 -04:00
Arthur Charlton
cfb5fc25c3
Calling code assumes the pair never null and uses -1 to signify not found.
2023-07-05 14:12:42 -04:00
Arthur Charlton
3816e1c5bd
Add the warp party function that the scripts use
2023-07-03 18:25:14 -04:00
P0nk
46f767d79c
Merge branch 'master' into feat/postgresql-database
2023-05-29 15:56:53 +02:00
Ponk
c9d551cd39
Merge pull request #173 from MatthewHinds/gm-security #minor
...
GM security changes to prevent item/mesos abuse
2023-05-29 15:50:03 +02:00
Matthew Hinds
95bf0473f3
Adjusted based on feedback
2023-05-29 14:32:01 +12:00
Matthew Hinds
a9d92b78a2
Meso drop restricted by GM level
2023-05-29 12:57:01 +12:00
Matthew Hinds
4546fd44ff
To prevent abuse, GMs should be permission restricted (via GM level) to trade with other non GM players, use their storage (prevent transferring to their other characters), send via Duey and to drop items. GM level is configurable.
2023-05-12 18:02:08 +12:00
Matthew Hinds
216fa9341b
Removed level up messages as it is non GMS like and a bit cringey
2023-05-12 14:47:18 +12:00
Shahar6
cbc0b2707e
Fix dupe glitch with wedding
...
PoC for the glitch:
https://www.youtube.com/watch?v=EoVGQtMkJOA&ab_channel=ThirtyOneFifty
2023-04-21 20:27:59 +03:00
Sukishyou
301f65ce16
Add null check to duey packet edit check
2023-04-15 14:36:00 -05:00
Sukishyou
f1b95fe45e
Fix exploit with Duey Send Items
2023-04-14 19:43:51 -05:00
P0nk
785f74ed21
Fix HelpCommand not working without static CommandsExecutor
2023-03-31 07:59:43 +02:00
P0nk
699da37f06
Simplify NPC script start
2023-03-31 07:33:49 +02:00
P0nk
c3badba73b
Convert ShopItem to record
2023-03-30 07:07:33 +02:00
P0nk
5f0e9a355b
Move Shop stuff to own package
2023-03-30 06:47:07 +02:00
P0nk
39d759595d
Get shop as Optional
2023-03-30 06:41:13 +02:00
P0nk
fe9dd75a23
Instantiate shops in ShopFactory
2023-03-29 21:59:00 +02:00
P0nk
2139147dcd
Add getShop to DAO, preparing to refactor shop loading
2023-03-29 21:14:19 +02:00
P0nk
c71ca7f4d5
Inject ShopFactory
2023-03-29 20:51:31 +02:00
P0nk
705efb4340
Remove access to shops from scripts
2023-03-29 20:38:34 +02:00
P0nk
ec1450cec1
Rewrite Mo NPC script to be GMS-like
2023-03-29 19:54:59 +02:00
P0nk
290bf78db3
Notes about difficulties of DI for scripts
2023-03-18 16:04:01 +01:00
P0nk
02c1fe46f3
Remove custom shops
...
These custom shops we introduced in HeavenMS.
2082014 - Asia selling scrolls
9201101 - T-1337 selling special potions
2023-03-18 15:14:00 +01:00
P0nk
a496c0f2b4
Add ShopDao
2023-03-18 14:32:21 +01:00
P0nk
ab0239ba84
Add shop and shop_item PG tables with data
2023-03-17 20:53:16 +01:00
P0nk
f2f3abdb32
Move last pieces of monster drops to DropProvider
2023-03-16 18:55:33 +01:00
P0nk
5a35b55d7a
Cache continent drops
2023-03-16 18:03:43 +01:00
P0nk
02aa4a237f
Global monster drops are retrieved from DropProvider (postgres db)
2023-03-16 18:00:21 +01:00
P0nk
cc88d382e6
Monster drops are retrieved from DropProvider (postgres db)
...
This commit emphasizes the need for events to be reworked.
This is the chain of constructors the DropProvider has to pass through to reach MapleMap:
Channel -> EventScriptManager -> EventManager -> EventInstanceManager -> MapManager -> MapleMap
2023-03-16 08:31:38 +01:00
P0nk
a95fa2efc1
Refactor LootInventory & LootManager
2023-03-16 00:25:21 +01:00
P0nk
45e2b93724
Remove "multiple same equip drop" feature
2023-03-15 23:26:15 +01:00
P0nk
fa3481fa99
Pass CommandContext to commands
...
CommandContext is the carrier of dependencies.
Currently, it only carries a DropProvider, but
it will grow bit by bit as more static singletons
and other similar structures get refactored.
2023-03-15 23:19:04 +01:00
P0nk
eed94ec34a
Refactor CommandsExecutor - is no longer static singleton
...
Preparing for change in Command#handle,
which is going to take a CommandContext as an additional argument.
This way we can pass in command dependencies in a safe way
instead of requiring them to access static methods.
2023-03-15 22:56:40 +01:00
P0nk
a6a7a26ebc
Clean up Steal stuff in MIP
2023-03-15 22:41:36 +01:00
P0nk
7ed7b25268
Fix race condition when concurrently Stealing
2023-03-15 22:38:54 +01:00