Commit Graph
100 Commits
Author SHA1 Message Date
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 7315dd80fc Remove redundant scripts for Ariant weapon & armor merchants 2023-03-18 15:08:06 +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
P0nk 703ae30a27 Move "steal item" logic to DropProvider 2023-03-15 22:22:14 +01:00
P0nk 6bf8785f22 Fix error in monster_drop query 2023-03-15 22:17:42 +01:00
P0nk 53768555a2 Add table, data, and provider method for global drops 2023-03-09 20:08:20 +01:00
P0nk a70f4e303d Add DropProvider and dao for monster drops 2023-03-08 22:46:24 +01:00
P0nk 7a848cf6a1 Add monster_drop table with data 2023-03-08 22:31:14 +01:00
P0nk 0be48568d7 Get MakerItemCreateEntry from new info provider 2023-03-08 21:09:47 +01:00
P0nk 1fd0963401 Fix maker disassembly fee not being applied 2023-03-04 22:53:05 +01:00
P0nk d2d4b442d2 Maker disassembly info to MakerInfoProvider
MakerProcessor is such a mess...
2023-03-04 22:33:34 +01:00
P0nk 9d6574d3ba Cache maker info with Caffeine 2023-03-04 21:27:18 +01:00
P0nk f2ca67aba4 Add tests for MakerInfoProvider
These are going to be handy soon,
as I'm about to add Caffeine for caching.
2023-03-04 21:02:04 +01:00
P0nk 6073b20d65 Cache MakerRecipe, move stimulant to MakerInfoProvider 2023-03-04 17:20:16 +01:00
P0nk b329709776 Expose containerized databases to host
This way you can connect with your favorite db client
2023-03-04 16:04:18 +01:00
P0nk 932f9fc443 Merge branch 'master' into feat/postgresql-database
# Conflicts:
#	pom.xml
2023-03-02 18:40:27 +01:00
P0nk f4062e5ebb Upgrade dependencies 2023-03-02 18:31:21 +01:00
P0nk 10945927c1 Fix writeString not fully respecting charset
The string would be cut short for charsets
with characters more than 1 byte.
2023-03-02 18:11:41 +01:00
P0nk c0c0a2d2d9 Get maker reagent from PG db, rework processor (no statics) 2023-03-02 08:18:13 +01:00
P0nk 5cecb7adb6 Add maker_random_reward table and data (formerly "makerrewarddata") 2023-03-01 21:09:32 +01:00
P0nk 26357a8d7b Add maker_reagent table and data (formerly "makerreagentdata") 2023-03-01 20:51:26 +01:00
P0nk 9819fd5bb1 Add maker_recipe_ingredient table and data (formerly "makerrecipedata") 2023-03-01 20:45:51 +01:00
P0nk adbdb89917 Add maker_recipe table and data (formerly "makercreatedata") 2023-03-01 20:34:48 +01:00
P0nk b7c79800eb Fix note not showing if case mismatch in name
This wouldn't be a problem in the first case,
if there was a foreign key connection between
note and character tables.
Can't add that quite yet though.
2023-02-28 21:30:20 +01:00
P0nk 55e1f65bbd Fix server not able to use note sequence 2023-02-27 19:55:01 +01:00
P0nk d018b0f5e5 Add note receiver index
Only makes a difference if there is
a large amount of notes in the database.
Better be safe than sorry.
2023-02-27 18:16:23 +01:00
P0nk 12745c207d Move notes to the Postgres database 2023-02-25 00:40:36 +01:00
P0nk f6f3c9c3e3 Initiate Postgres connection pool on startup 2023-02-25 00:11:33 +01:00
P0nk 8bb825ef02 Add Docker compose support for Postgres 2023-02-24 23:42:13 +01:00
P0nk f1192279bf Add Flyway, run db migration in local PostgreSQL db
First step in my plan to switch away from MySQL.
2023-02-24 21:49:00 +01:00
P0nk b30e03ffb3 Fix portal in Zenumist society not working for GM chr 2023-02-17 00:42:33 +01:00
P0nk 82157c7bd1 Flatten ChangeMapHandler 2023-02-16 23:46:13 +01:00
P0nk b1ef94ef60 Fix handbook file encoding
All handbook files are now UTF-8
2023-02-04 19:49:54 +01:00
P0nk f89392b476 Refactor IdCommand 2023-02-04 19:46:09 +01:00
P0nk 404c00c2bf Merge branch 'master' into feat/note-dao 2022-12-27 15:09:38 +01:00
P0nk 771b69d151 Merge branch 'master' into feat/note-dao 2022-12-27 14:21:43 +01:00
P0nk 14d80dc2f3 Fix saving "Illegal program claim" report
No chatlog is provided in the packet for this type
2022-12-27 14:08:20 +01:00
P0nk cb38bcd270 Fix wrong timestamp format when saving report 2022-12-27 14:08:20 +01:00
P0nk 37a9a4121f Show confirmation after note is sent 2022-12-27 12:31:47 +01:00
P0nk 4731c0c60d Add tests for NoteService 2022-12-27 12:18:58 +01:00
P0nk 65111ae209 Create packet class for PacketCreator::showNotes 2022-12-27 12:18:36 +01:00
P0nk 2a460de911 Disable logging in tests 2022-12-27 12:05:51 +01:00
P0nk cee82a08ba Remove ItemInformationProvider field in Character
This field prevented creation of Character mock in tests
2022-12-27 11:59:14 +01:00
P0nk 387437cada Workaround for Guild dependence on NoteDao 2022-12-27 11:05:00 +01:00
P0nk af14da987e Replace FredrickProcessor dependence on NoteDao 2022-12-27 11:04:11 +01:00
P0nk 389b3ad2a4 Add NoteService to handle note operations
NoteService should be the only class with access to NoteDao;
nowhere else should NoteDao be accessed directly.

Channel dependencies are static in PacketProcessor, for now.
Ideally they would be injected in the constructor,
but since the constructor is private and I don't want to open
up that can of worms, I'll leave it like this.
At the very least, now we have a way of injecting services into
the handlers. This will make further restructuring way easier.
2022-12-27 10:34:55 +01:00
P0nk 5f1f5b7dcd Fix saving note 2022-12-27 10:24:47 +01:00
P0nk 7e3be4c45d Update README - explain hide 2022-12-26 18:09:09 +01:00
P0nk c82881e6f2 Get rid of Character#sendNote, refactor usages of it 2022-12-26 18:09:09 +01:00
P0nk 6be1fabc55 Send wedding invitation note directly via dao 2022-12-26 18:07:41 +01:00
P0nk 4d480660b5 Rework sending notes to chr, get rid of the first method
Sending notes should not be the handled by Character
2022-12-26 18:07:41 +01:00
P0nk 1f4ce98998 Show notes using NoteDao 2022-12-26 18:07:41 +01:00
P0nk 605f2e212e Add NoteDao, used by NoteActionHandler to delete note when read 2022-12-26 18:07:41 +01:00
P0nk 188eb74a70 Add Note model object 2022-12-26 18:07:41 +01:00
P0nk 2d7d113458 Initial jdbi setup 2022-12-26 18:07:41 +01:00
P0nk f267b1fc0b Fix error summoning master guardians on CWKPQ last stage 2022-10-16 12:30:01 +02:00
P0nk 4004b36bfa Tag the merge commit instead of last commit in the PR
The merge commit is more suitable since it provides some context
and groups up all the commits.
2022-10-16 11:53:29 +02:00
P0nk 584fccec92 Activate bump-version action 2022-10-16 10:04:35 +02:00
P0nk 41cf8b4485 Update README - add "Working with GitHub", "Versioning" 2022-10-16 10:02:03 +02:00
P0nk e12d853499 Update build workflow - new name and updated dependencies 2022-10-16 08:48:32 +02:00
P0nk 5c7fcdae06 Add action to automatically tag commits
Using this action: https://github.com/marketplace/actions/github-tag-bump
The idea is that the repo will be versioned in SemVer format, such as "v0.5.3".
When a PR is merged, a new version will automatically be added.
The new version is generated based on the latest tag, and the part that is bumped
is dictated by the merge commit message, either #major, #minor (default) or #patch.

This way I (the repo owner) has control over versioning, and other contributors
don't have to bother with anything.
2022-10-16 08:34:45 +02:00
P0nk 1a28fc98ac Commit to "tameness" name over "closeness" for pets, fix scripts 2022-09-15 17:12:21 +02:00
P0nk 650b1ff89b Fix mob summoning mobskill not working 2022-09-14 07:27:48 +02:00
P0nk d31f4806fc Fix mob using attack with no diseaseSkill causing errors 2022-09-12 20:31:38 +02:00
P0nk df5159e34c MobSkillFactory throws exception instead of returning null 2022-09-07 19:25:30 +02:00
P0nk 319d65a0c3 Add tests for MobSkillFactory 2022-09-07 18:58:26 +02:00
P0nk fd793d6b04 Fix not reading mpCon from MobSkill 2022-09-07 18:58:02 +02:00
P0nk 15c4188d48 Make MCSkill immutable with record 2022-09-03 14:44:14 +02:00
P0nk 9e0479fe9f Clean up Monster usedSkills 2022-09-03 14:31:43 +02:00
P0nk a6ec6adbb5 Combine type and skillLevel in MobSkill 2022-09-03 14:07:24 +02:00
P0nk 7cdaabf6f8 Simplify Monster skills with Set instead of List
Doable now with MobSkillId records
2022-09-03 13:31:47 +02:00
P0nk c47ca4d6a4 Fix MobSkillType always being ATTACK_UP 2022-09-03 13:11:45 +02:00
P0nk 930d365752 Add record MobSkillId for mob skill type + level combination
Pair is nasty to work with when they are passed around all over
2022-09-03 11:01:51 +02:00
P0nk 7a784a7938 Disease and MCSkill hold MobSkillType instead of int 2022-09-03 05:20:54 +02:00
P0nk fba49e7eec MobSkillFactory takes MobSkillType instead of int as id argument 2022-09-03 04:52:55 +02:00
P0nk 66b04969fd Delete ArrayMap which filled no function 2022-09-03 04:32:09 +02:00
P0nk aeaad4194a Refactor MobSkill#applyEffect, split into multiple smaller methods 2022-09-03 04:22:06 +02:00
P0nk 455d4b2195 Make MobSkill immutable using builder pattern 2022-09-02 08:45:55 +02:00
P0nk 6e62a6a45d Break off mob skill loading into separate method 2022-09-02 07:58:52 +02:00
P0nk 3c9be7d70b Lessen magic numbers around mob skills with new "type" enum 2022-09-02 07:39:26 +02:00
P0nk 958286e078 Make Riche text MSEA-like (at least)
MSEA text is likely not the same as GMS text, but it's better than making things up.
2022-08-31 22:04:58 +02:00
P0nk ea76880b7f Use act() in reactor scripts where possible, provide empty act() otherwise
"function hit()" has triggered on each reactor hit,
while "function act()" is only triggered once it's destroyed or reached an end state
2022-08-31 21:34:49 +02:00
P0nk 298457a007 Clean up old way of damaging area boss with reactor 2022-08-30 08:33:10 +02:00