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
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
P0nk
46c2d92082
refactor: use Invocable instead of ScriptEngine in script managers
...
- Make fields final
- Inject event script variable earlier
- Remove redundant fields
2021-04-18 11:26:05 +02:00
P0nk
58e69654a2
Let scripts access Java classes
...
Fix script attempting to schedule with non-long (double) time value
2021-04-17 22:26:18 +02:00
P0nk
fcd879f97c
Convert remaining scripts to Graal
...
Mainly missed scripts that use Nashorn's "Packages"
2021-04-17 21:59:15 +02:00
P0nk
d2c7023e7b
Convert NPC scripts to Graal
2021-04-17 21:57:57 +02:00
P0nk
256e5688e0
Convert quest scripts to Graal
2021-04-17 21:57:48 +02:00
P0nk
542a7b7fd2
Convert reactor scripts to Graal
2021-04-17 21:57:37 +02:00
P0nk
984adc7885
Convert portal scripts to Graal
2021-04-17 21:57:27 +02:00
P0nk
938f7c9390
Convert map scripts to Graal
2021-04-17 21:57:16 +02:00
P0nk
3458d1c7b3
Convert event scripts to Graal
2021-04-17 21:57:04 +02:00
P0nk
a18a1cb8ce
Replace NashornScriptEngine with implicit GraalJSScriptEngine
...
GraalJSScriptEngine implements Invocable, which is why casting to it works.
However, this is just a quick and ugly fix to make it compile.
A better solution would be to cast it once, immediately after `eval`,
and from then on only handle it as Invocable.
Scripts still need to be fixed. They are still using Rhino and Nashorn-specific
ways of importing packages.
Usages of "importPackage" and "Packages" need to be replaced with
the Graal specific "Java.type".
2021-04-17 15:12:19 +02:00
P0nk
e42fb27459
Bump to Java 16 and updated dependencies
...
Scripting is not fixed yet
2021-04-17 14:55:06 +02:00
P0nk
5a5110d905
Use existing connection for loading new year + family
...
Move async tasks earlier for lower chance of having to wait
2021-04-16 20:41:17 +02:00
P0nk
8335e77f2e
Load developer room async on startup
2021-04-13 22:44:20 +02:00
P0nk
dd7c2a697a
Load skillbook source information async on startup
2021-04-13 08:14:11 +02:00
P0nk
055ee01ae9
Load quests async on startup
2021-04-12 22:05:57 +02:00
P0nk
a59b55db57
Load cash items async on startup
2021-04-12 21:44:47 +02:00
P0nk
415376ce08
Load skills async on startup
2021-04-12 21:06:05 +02:00
P0nk
ab56d18bd3
Log startup time
2021-04-11 14:02:25 +02:00
P0nk
68239bc0b5
Make database operations during startup consistent
...
Use the same Connection. and log things in a similar fashion
2021-04-11 13:52:35 +02:00
P0nk
858fcd2a3a
Actually perform name changes & world transfers on startup
...
No changes were being committed
2021-04-11 13:05:12 +02:00
P0nk
a5b42b8a43
cleanup: use primitive type instead of wrapper type
2021-04-08 17:49:22 +02:00
P0nk
202f2d8bc5
cleanup: use bulk operation instead of iteration
2021-04-08 17:49:21 +02:00
P0nk
3434c7334b
cleanup: remove redundant cast
2021-04-08 17:39:55 +02:00
P0nk
ebb3aa7ba3
cleanup: prefer List#sort over Collections#sort
2021-04-08 07:44:02 +02:00
P0nk
5730b3b42d
cleanup: use implicit generic type with diamond operator
2021-04-08 07:42:10 +02:00
P0nk
8aa44711e3
cleanup: use Integer#parseInt where applicable
2021-04-08 07:40:42 +02:00
P0nk
7ff8190977
cleanup: remove unnecessary boxing
2021-04-08 07:39:02 +02:00
P0nk
5c6f515d18
cleanup: use for-each loop where applicable
2021-04-08 07:36:38 +02:00
P0nk
0ff8a80ef2
cleanup: remove unnecessary semicolon
2021-04-08 07:34:56 +02:00
P0nk
f37d4063fb
cleanup: remove unnecessary interface modifiers
2021-04-08 07:33:52 +02:00
P0nk
dde52653e5
cleanup: remove unnecessary conversion to String
2021-04-08 07:30:12 +02:00
P0nk
5e3b346053
cleanup: use Java-style array declaration
2021-04-08 07:17:03 +02:00
P0nk
ed5a444753
cleanup: remove unnecessary unboxing
2021-04-07 23:52:58 +02:00
P0nk
6253169e35
cleanup: replace anonymous inner class with lambda
2021-04-07 23:45:28 +02:00
P0nk
1b36852c8d
Clean up README, add section about contributions
2021-04-07 19:28:52 +02:00
P0nk
b3c1259580
Use new logging for all startup messages
2021-04-07 18:40:47 +02:00
P0nk
045bcf6dc5
Set up Slf4j and Log4j2 for logging
...
All logs are kept in the "logs" directory as before.
The most recent logs (up to 20MB) are kept in cosmic-log.log in the root of "logs".
Previous logs (either from previous server starts or logfiles that exceeded max size of 20MB) are stored away in directories according to their creation date.
2021-04-07 18:40:46 +02:00
P0nk
2f34b3ed8b
Fix ranking update query using a keyword for field name
...
"Rank" is a reserved keyword in MySQL 8.
This caused an SQLSyntaxErrorException during the task run.
2021-04-06 21:12:23 +02:00
P0nk
02256e04ed
Fix SQL type conversion error during ranking move update
...
Caused by prior upgrade to MySQL 8 which seems more strict when it comes to type conversions.
2021-04-06 21:11:56 +02:00
P0nk
b80d98f36e
Add descriptions to all gm 6 commands
2021-04-06 20:08:57 +02:00
P0nk
3b59f95f20
Add descriptions to all gm 5 commands
2021-04-06 20:05:21 +02:00
P0nk
f25539f389
Add descriptions to all gm 4 commands
2021-04-06 20:04:20 +02:00
P0nk
f9fcc79565
Add descriptions to all gm 3 commands
2021-04-06 20:00:43 +02:00
P0nk
a9b23552b0
Add descriptions to all gm 2 commands
2021-04-06 19:51:20 +02:00
P0nk
3cd23a07e2
Add descriptions to all gm 1 commands
2021-04-06 19:42:38 +02:00
P0nk
70d895fef5
Add descriptions to all gm 0 commands
2021-04-06 19:42:38 +02:00
P0nk
ca78bce534
Add Discord link
2021-04-05 14:14:32 +02:00
P0nk
4bce7fadb4
Update the README with guides and new tools
2021-04-05 13:42:21 +02:00
P0nk
69635f5e6c
refactor: use try-with-resources for db operations in various places
2021-04-05 00:19:59 +02:00
P0nk
4ec4600406
refactor: use try-with-resources for Fredrick db operations
2021-04-05 00:13:32 +02:00
P0nk
e13c313839
refactor: use try-with-resources for db operations in various handlers
2021-04-05 00:11:42 +02:00
P0nk
429f82e4fe
refactor: use try-with-resources for nx coupon db operations
2021-04-05 00:09:51 +02:00
P0nk
0334391e33
refactor: use try-with-resources for fm shop db operations
2021-04-05 00:07:40 +02:00
P0nk
80e193398c
refactor: use try-with-resources for ban db operations
2021-04-04 23:59:24 +02:00
P0nk
8b686b60f1
refactor: use try-with-resources for ranking db operations
2021-04-04 23:56:46 +02:00
P0nk
f1ff0cb55f
refactor: use try-with-resources for wedding ring db operations
2021-04-04 23:48:56 +02:00
P0nk
cb518863b0
refactor: use try-with-resources for various world wide db operations
2021-04-04 23:45:40 +02:00
P0nk
6b6558af01
refactor: use try-with-resources for perma npc/mob db operations
2021-04-04 23:34:35 +02:00
P0nk
59014b86bf
refactor: use try-with-resources for monster book db operations
2021-04-04 23:26:15 +02:00
P0nk
9d70f4de04
refactor: use try-with-resources for ring db operations
2021-04-04 23:15:52 +02:00
P0nk
8ceba9fbee
refactor: use try-with-resources for PlayerNPC db operations
2021-04-04 23:12:39 +02:00
P0nk
5cb69910bd
refactor: use try-with-resources for pet db operations
2021-04-04 22:54:25 +02:00
P0nk
0b91b02f80
refactor: use try-with-resources for monster information db operations
2021-04-04 22:50:09 +02:00
P0nk
50b76bf2ec
refactor: use try-with-resources for item information db operations
2021-04-04 22:43:06 +02:00
P0nk
de14c5782d
refactor: use try-with-resources for item saving & loading db operations
2021-04-04 22:28:52 +02:00
P0nk
fc34d54cdd
refactor: use try-with-resources for buddy list db operations
2021-04-04 21:48:52 +02:00
P0nk
8c41f713a6
refactor: use try-with-resources for character saving db operations
2021-04-04 21:29:18 +02:00