Commit Graph

445 Commits

Author SHA1 Message Date
IzzelAliz
47c1884141 Create symbol link for world 2021-07-15 19:22:38 +08:00
悠静萝莉
9dbe8def69
add require (#317) 2021-07-06 22:28:03 +08:00
IzzelAliz
dd92ceb7c8 Implement PlayerSpawnLocationEvent 2021-07-05 23:01:48 +08:00
IzzelAliz
f2b24ca9f0 Add MH.defineClass into redirect handler 2021-06-27 14:29:12 +08:00
IzzelAliz
0f18c1cbef Fix NPE 2021-06-25 10:32:53 +08:00
IzzelAliz
d4ab8965fb Remove ServerChunkProvider overwrite 2021-06-22 17:40:00 +08:00
IzzelAliz
d391e85c98 Update hidden form for newer jdk 2021-06-21 10:54:28 +08:00
IzzelAliz
7294713cbe Fix item NPE handling forge caps 2021-06-20 21:56:39 +08:00
IzzelAliz
cd23381c59 Add stats to bukkit registry (#270) 2021-06-16 13:40:13 +08:00
IzzelAliz
68ddb4a6b7 Add Player context to AnvilUpdateEvent (#287) 2021-06-15 15:19:55 +08:00
IzzelAliz
aa274edaa8 Improve pickup delay check (#272) 2021-06-15 15:05:57 +08:00
IzzelAliz
0fcaba618f Forwarding commands registered outside RegisterCommandsEvent (#291) 2021-06-14 16:40:50 +08:00
IzzelAliz
a4f015fce6 Implement API 2021-06-13 22:06:33 +08:00
IzzelAliz
b2a0c7d1bc Update upstream (#271) 2021-05-23 18:13:02 +08:00
IzzelAliz
b6a8366963 Update bukkit upstream changes 2021-05-16 23:36:57 +08:00
IzzelAliz
b2b9a08824 Java version warning 2021-05-12 23:15:02 +08:00
IzzelAliz
1c0c9116d5 Fix mod inventory size limit implementer (#227 #251) 2021-05-09 21:46:38 +08:00
IzzelAliz
d22c78f007 Fix vanilla item with forge cap handling
Related to #228 #250 #251
2021-05-09 15:30:23 +08:00
IzzelAliz
cef6d7e3fc Set default pickup delay for dropped item 2021-05-07 21:14:13 +08:00
IzzelAliz
c809b8de08 Bump tools to 1.1, fix entity drop adding (#258) 2021-05-07 20:56:00 +08:00
IzzelAliz
9236c34006 Fix VineBlock crash 2021-05-06 21:52:39 +08:00
IzzelAliz
80b90887a5 Properly wrap non vanilla argument types (ArclightPowered/lightfall#7) 2021-05-06 21:22:34 +08:00
IzzelAliz
d9463a511c Wrap modded command arguments 2021-05-05 23:52:25 +08:00
IzzelAliz
10f6e37aa0 Enable class cache in URLClassLoader 2021-04-29 23:27:17 +08:00
IzzelAliz
54900086dd Unpark main thread when tasks added 2021-04-29 16:23:33 +08:00
IzzelAliz
69a9b0c4b9 Set channel size limit to 1024 (#247)
Because we can run atm6 and it has lots of mods
2021-04-29 11:04:49 +08:00
IzzelAliz
94894f63d4 Fix GameData get injected multiple times (#170) 2021-04-27 21:43:17 +08:00
IzzelAliz
d0108af1e6 Restore reader index after processing custom payload 2021-04-27 16:24:32 +08:00
IzzelAliz
9a562e1e34 Fix custom payload channel register (#84) 2021-04-27 16:11:33 +08:00
IzzelAliz
f57da77efb Add missing isSprinting check (#221) 2021-04-25 15:10:00 +08:00
IzzelAliz
5929021e98 Fix world map CCE 2021-04-24 19:40:50 +08:00
IzzelAliz
70063d3ae7 Fix signed jar class caching (#241) 2021-04-24 13:30:04 +08:00
IzzelAliz
d9370b4f65 Fix signed jar class caching (#241) 2021-04-24 13:27:32 +08:00
IzzelAliz
0e02e12b3f Fix empty recipe type in RecipeIterator 2021-04-24 11:55:22 +08:00
IzzelAliz
81b5b4812a Implement plugin class cache
Plugins are expected to load faster on second run.
2021-04-20 19:49:51 +08:00
IzzelAliz
5f82080fb6 Fix modded portal teleporting player (#222) 2021-04-18 13:35:24 +08:00
IzzelAliz
047a913c63 Fix astralsorcery compat (#217) 2021-04-18 12:37:35 +08:00
IzzelAliz
77378c43f1 Fix champions crash (#235) 2021-04-18 11:28:09 +08:00
IzzelAliz
3e6fc00d78 Fix mod portal entity teleport crash (#218 #233) 2021-04-18 11:00:58 +08:00
IzzelAliz
7443bdf012 Fix plugin world map creation (#210) 2021-04-18 10:30:32 +08:00
IzzelAliz
f31f8ec2ad Fix remap classes for inheritance (#204) 2021-04-04 14:14:26 +08:00
André Sales
3fed903fac
Fix items stacking in EssentialsX /kit (#224) 2021-04-04 12:22:59 +08:00
IzzelAliz
8f071289b0 Remap classes for inheritance (#204) 2021-04-03 17:34:28 +08:00
IzzelAliz
9319dbc00f Fix item nbt being reset when dragging (#206) 2021-04-03 15:28:30 +08:00
IzzelAliz
c6c38b09e7 Quick fix for Fabrication 2021-03-28 00:13:11 +08:00
IzzelAliz
c05e80d6ff Send channels in one pass 2021-03-21 14:08:07 +08:00
IzzelAliz
2e3ff1e97f Make it more lenient on chunk loading counting 2021-03-21 14:08:07 +08:00
IzzelAliz
1dffda9a8c Missing forge patch 2021-03-17 14:10:57 +08:00
IzzelAliz
50a1540a33 Update forge to 36.0.55, SS to 1.9.0 2021-03-13 12:44:58 +08:00
IzzelAliz
537b3b4823 Restore terminal environment and run shutdown hooks 2021-03-10 16:05:26 +08:00
IzzelAliz
20e945d166 Add constructor for LevelSave (#197) 2021-03-10 15:14:14 +08:00
IzzelAliz
fea081e2ae Support ip forward 2021-03-09 16:28:24 +08:00
IzzelAliz
e2f496eb7c Guard potion and enchantment registry 2021-03-07 13:28:21 +08:00
IzzelAliz
ebe5b4de14 Fix custom world generator not applied (#164) 2021-03-06 17:38:01 +08:00
IzzelAliz
a2820926ec Fix crash executing server command 2021-03-06 17:14:09 +08:00
IzzelAliz
43961b1a62 Fix art NPE (#126) 2021-03-06 16:38:24 +08:00
IzzelAliz
088ce37ce4 Fix zombie turn into zombie villager (#189) 2021-03-06 15:21:30 +08:00
IzzelAliz
5dc8432243 Fix ClassCastException in recipe (#168) 2021-03-06 13:58:18 +08:00
IzzelAliz
830a9a404f Fix kick after signing book (#157) 2021-03-06 13:40:55 +08:00
IzzelAliz
cda5175b74 Disable spigot watchdog, we don't use it (#158)
This fixes WorldEdit
2021-03-06 13:25:31 +08:00
IzzelAliz
242055daed Fix NPE copying forge caps 2021-03-01 16:03:43 +08:00
IzzelAliz
1d797fdfb8 Enforce bukkit mixin injection 2021-02-28 18:16:13 +08:00
IzzelAliz
36d01d1a16 Call forge command event (#174) 2021-02-28 17:40:53 +08:00
IzzelAliz
3f5ae63382 No redirect on super calls (#177) 2021-02-28 15:39:27 +08:00
threader
691871ebbb
Replacing substring with replaceAll using regex (#178) 2021-02-24 21:01:48 +08:00
IzzelAliz
3408941d33 Release 1.0.14 2021-02-21 15:22:13 +08:00
IzzelAliz
141db3dfba Update to Forge 36.0.42 2021-02-21 00:36:58 +08:00
IzzelAliz
a392e7c441 Add missing cancellable 2021-02-20 23:56:50 +08:00
IzzelAliz
0d02fdb5a4 Add missing patch to structure data 2021-02-20 22:01:53 +08:00
IzzelAliz
3e29d3e24d Add missing patch to structure data 2021-02-20 21:57:13 +08:00
IzzelAliz
48e1e26f86 Fix getResources 2021-02-20 20:46:20 +08:00
IzzelAliz
5dd94c727d Actually return transformed byte source 2021-02-20 17:17:00 +08:00
IzzelAliz
2a01f3230a Remap classes for Unsafe and redirect bridge classes (#138) 2021-02-20 02:12:37 +08:00
IzzelAliz
65ed2913f6 Wtf why this is not added 2021-02-19 16:16:23 +08:00
IzzelAliz
aff457258e Read remapped resource file 2021-02-19 15:58:57 +08:00
IzzelAliz
190726678c Update InventoryView when container layout changed 2021-02-18 01:00:46 +08:00
IzzelAliz
2d6b0d6db2 Update InventoryView when container layout changed 2021-02-18 00:40:15 +08:00
IzzelAliz
41a70332a4 Handle forge caps in items properly (#143)
Maybe not covering all cases
2021-02-17 02:29:40 +08:00
IzzelAliz
3964235b8f Add missing getEntitySlices method (#165) 2021-02-16 13:50:10 +08:00
IzzelAliz
c477a31e48 Provide default implementation for WorldPosCallable (#161) 2021-02-16 13:43:57 +08:00
IzzelAliz
66530a65cd Update mappings to 20210215 2021-02-16 01:12:08 +08:00
IzzelAliz
f67d4c5739 Port teleport fix from 1.15 2021-02-13 17:08:51 +08:00
IzzelAliz
c35bb35cf8 Fix structure mobs not spawning (#162) 2021-02-13 10:35:46 +08:00
IzzelAliz
9ede1cf416 Use bukkit command dispatcher (#132) 2021-02-12 17:42:37 +08:00
IzzelAliz
ddbb4265f2 ... but still compute maxs for them 2021-02-12 16:21:11 +08:00
IzzelAliz
55ff30252a No compute frame on v1_5 classes 2021-02-11 17:18:52 +08:00
IzzelAliz
8822c89bb0 Remap injected jars by findResource (#153) 2021-02-10 23:18:54 +08:00
IzzelAliz
2f4e7e9a58 Fix opening mod containers 2021-02-10 23:16:00 +08:00
IzzelAliz
d5f39d57cc Refactor redirect logic, should break nothing 2021-02-09 00:03:59 +08:00
IzzelAliz
dd80a19c27 Fix several remapper issue (#138) 2021-02-06 23:42:52 +08:00
IzzelAliz
6475823180 Update define class hook 2021-02-06 14:00:14 +08:00
IzzelAliz
402346073d Implement tracking range 2021-02-06 13:55:01 +08:00
IzzelAliz
5605db762f Implement entity activation range 2021-02-04 20:56:13 +08:00
IzzelAliz
24db9e1cc0 Port optimizations 2021-02-04 20:56:13 +08:00
IzzelAliz
1c0136c7db Damn (#125) 2021-01-31 14:22:12 +08:00
IzzelAliz
bca2984496 Containers may not providing name 2021-01-31 13:38:25 +08:00
IzzelAliz
642e972f7e Containers may not providing name 2021-01-31 13:37:52 +08:00
IzzelAliz
b0b2d380c2 Missing remap 2021-01-30 18:19:59 +08:00
IzzelAliz
f052efd30f Implement bridge methods (#125) 2021-01-30 18:04:56 +08:00
IzzelAliz
7cd2907ac1 Do not send packet to player not logged in 2021-01-30 17:40:32 +08:00
IzzelAliz
1ef69325a4 Assign connection only for fake players (#144) 2021-01-30 17:31:10 +08:00
IzzelAliz
b7ee2e0ddf Fix player has 0 health after respawn (#133) 2021-01-30 16:13:43 +08:00
IzzelAliz
006599c6d9 Fix player has 0 health after respawn (#133) 2021-01-30 15:14:46 +08:00
IzzelAliz
4ae308eb5f Fix recipe book is not updated (#20) 2021-01-29 12:54:17 +08:00
IzzelAliz
dddb2e1474 Fix furnace exp are not cleared (#137) 2021-01-29 12:47:47 +08:00
Joseph Tarbit
f63854801c
Update ForgeGradle, update Gradle wrapper, add gitignores, add lastPhysicsProblem, add ATs (#140)
* Add gitignores; bump gradle; bump forge gradle

* Add bin folder to gitignores

* Remove gitignores from bin folder

* Fixed problems; added lastPhysicsProblem

* Added to accesstransformer

NibbleArray#setIndex for FAWE support

* Added to accesstransformer

BiomeContainer#biomeRegistry

* Downgrade FG to 4.0.9

* Bump FG to 4.0.13 + remove reobfJar
2021-01-28 19:51:42 +08:00
IzzelAliz
d65b12ae78 Fix teleport/respawn across world NPE (#130 #133) 2021-01-25 23:03:24 +08:00
IzzelAliz
2185b6f1bc Upstream: Fix RightClickBlock ALLOW not being implemented 2021-01-25 21:00:45 +08:00
IzzelAliz
3d9a57aa59 ZipError do not extend Exception 2021-01-25 20:28:11 +08:00
IzzelAliz
aae03a229f Fix crash with mek fake player 2021-01-25 20:26:05 +08:00
IzzelAliz
66feec6cf2 Provide a default connection for (fake) player 2021-01-25 18:06:05 +08:00
IzzelAliz
cfc83f9aea Fix several container problem (#115) 2021-01-25 00:19:04 +08:00
IzzelAliz
678c8e886c Allow set title multiple times 2021-01-24 23:09:27 +08:00
IzzelAliz
2238279647 Try to address #115 2021-01-24 17:42:35 +08:00
IzzelAliz
f0b4f82f1f Workaround for MinecraftForge#7519 2021-01-24 01:22:21 +08:00
IzzelAliz
678786d426 Workaround for MinecraftForge#7519 2021-01-24 01:02:36 +08:00
IzzelAliz
414085d5da Remap lambda calls 2021-01-23 17:03:16 +08:00
IzzelAliz
a491fdc83b Do not save multiple times 2021-01-23 15:39:53 +08:00
IzzelAliz
89deb3d2ac Fix book edit async kick 2021-01-23 11:23:14 +08:00
IzzelAliz
26f9fd0cb0 Implement per player scoreboard 2021-01-22 13:46:34 +08:00
IzzelAliz
c051d2ab16 Update to 1.16.5, forge 36.0.1 2021-01-21 22:27:58 +08:00
IzzelAliz
98c16f0b15 Fix javac doing wrong elimination 2021-01-21 20:50:51 +08:00
IzzelAliz
793fddc227 Do not initialize a new world for wrapped worlds (#125) 2021-01-16 19:13:42 +08:00
IzzelAliz
3b0e2bd9bf Update mixin 2021-01-15 21:16:04 +08:00
IzzelAliz
5d262d35a8 Add missing getWorld method 2021-01-15 19:41:24 +08:00
IzzelAliz
8c4a9f4512 Print exact error in inv implementer 2021-01-15 15:42:32 +08:00
IzzelAliz
5a1ba73ec6 Use exact entity type 2021-01-15 15:23:57 +08:00
IzzelAliz
cc0019055c Assign but not register unknown dimType 2021-01-14 16:40:25 +08:00
IzzelAliz
6882df7de7 Register unknown dimType to world type 2021-01-13 17:38:55 +08:00
IzzelAliz
6fbe0146c2 Fix world creator and import not working (#107 #123) 2021-01-13 17:09:46 +08:00
IzzelAliz
f94adc9225 Fix class cast exception on mod villagers 2021-01-10 17:14:38 +08:00
IzzelAliz
13c956e833 Fix class cast exception on mod villagers 2021-01-10 16:49:17 +08:00
IzzelAliz
d6bf0f12ea Fix permission handler crash on preinit state 2021-01-10 16:35:40 +08:00
IzzelAliz
5c58877273 Fix remapper crash on obfuscated plugins (#108) 2021-01-10 16:14:09 +08:00
IzzelAliz
43cafef3d4 Allow custom state class on vanilla blocks (#111 #112) 2021-01-10 15:34:53 +08:00
寒兮
03401a43b1
Fix mod world to force cast to server world (#121)
* Fix mod world to force cast to server world

* Update forge version to 35.1.29
2021-01-08 20:08:38 +08:00
IzzelAliz
18ef0518d0 Remap package name (#120) 2021-01-08 17:18:20 +08:00
IzzelAliz
093932b3ed Port missing patch and ix #116 2021-01-06 21:51:16 +08:00
秋雨落
feb567a193
Update forge version to 35.1.28 (#113)
* Bump forge to 35.1.15 (还真跑起来了)

Signed-off-by: 秋雨落 <i@rain.cx>

* Update forge to 35.1.28

Signed-off-by: 秋雨落 <i@rain.cx>

* Change forge version number of README.md

Signed-off-by: 秋雨落 <i@rain.cx>
2021-01-02 19:10:24 +08:00
IzzelAliz
1a16e3a933 Fix missing cancellable in RedstoneOreBlock(#109) 2020-12-29 19:07:30 +08:00
IzzelAliz
e63e214546 Fix a CME as per discussion in MC-149777 2020-12-27 16:27:01 +08:00
IzzelAliz
feabbc04f8 Fix armor stand is invulnerable (#99) 2020-12-27 13:32:08 +08:00
IzzelAliz
96cdb7a758 Temp workaround for Mixin#451 2020-12-27 11:53:24 +08:00
IzzelAliz
281c84ecc5 Remap in reflect calls to defineClass 2020-12-11 21:34:09 +08:00
IzzelAliz
df6517ee6e Remap in reflect calls to defineClass 2020-12-11 14:02:18 +08:00
IzzelAliz
dd5be5a46d Fix kick during PlayerJoinEvent (#92) 2020-12-05 21:21:04 +08:00
IzzelAliz
1a6b7f9ebe Do not call loot event if no position present (#94) 2020-12-05 20:47:44 +08:00
IzzelAliz
0ab2ccf29f Read version info from our jars 2020-12-05 20:33:55 +08:00
IzzelAliz
9d27ae8627 Fix worldgen async catcher deadlock 2020-11-28 23:30:47 +08:00
IzzelAliz
c050ec7f6b Fix entity not teleporting in portal (#88) 2020-11-28 00:16:43 +08:00
IzzelAliz
52e137a550 Fix a worldgen deadlock 2020-11-27 23:34:25 +08:00
ZekerZhayard
ee86d9d0f1
Fix logger error with some specific jdk versions again. (#89) 2020-11-26 22:01:07 +08:00
IzzelAliz
96457372d7 Fake player fix (#80) 2020-11-26 19:45:40 +08:00
IzzelAliz
7d71a47c49 Fix crash of worldgen loottable (#86) 2020-11-26 15:54:14 +08:00
IzzelAliz
617d1f27b4 It is never registered ??? wtf ??? 2020-11-25 20:30:46 +08:00
IzzelAliz
a0140658b1 Fix world creator for MV compatibility 2020-11-25 18:40:34 +08:00
ZekerZhayard
c6939340e1
Fix log4j2 error with some specific jdk versions. (#83)
* Fix log4j2 error with some specific jdk versions.

* Fix spigot plugin logger.
2020-11-22 16:19:54 +08:00
IzzelAliz
e4ee5b7894 Fix wrong patches for water lily placing (#82) 2020-11-22 11:14:40 +08:00
IzzelAliz
36f8c76dc6 Better fake player compatibility (#80) 2020-11-22 11:02:35 +08:00
IzzelAliz
33b0e468ab Tweak player death for Quark compatibility 2020-11-22 10:31:28 +08:00
IzzelAliz
3af14dee6e Fix NPE with legacy plugin 2020-11-22 10:29:14 +08:00
IzzelAliz
3d40d345fc Various world patch, fix end portal crash (#81)
Also mapped world names
2020-11-22 00:30:53 +08:00
IzzelAliz
8d453dc287 Checks on CPlayerTryUseItemOnBlockPacket applied twice (#72) 2020-11-21 21:49:13 +08:00
IzzelAliz
4e1b6d4f86 It works, don't touch it 2020-11-21 17:28:13 +08:00
IzzelAliz
9d06987a13 1.16.4 update 2020-11-21 12:17:26 +08:00
IzzelAliz
3caea5943c Fix ClassCastException on lightning (#77) 2020-11-15 22:03:37 +08:00
IzzelAliz
3d71b9d4a7 Update mcp 20201028 2020-11-04 16:37:02 +08:00
IzzelAliz
f4063924e0 Fix async catcher IllegalAccessError (#71) 2020-11-04 15:57:37 +08:00
IzzelAliz
3202e7c387 No compile warnings 2020-10-31 11:07:33 +08:00
IzzelAliz
0b240123e2 Fix ToolBelt illegal access wtf 2020-10-31 11:04:13 +08:00
IzzelAliz
5ee2cfaad6 Fix inventory not syncing after death (#64)
Expose modded materials to legacy plugins.
2020-10-31 11:03:57 +08:00
IzzelAliz
e537455453 Fix throwing egg crashes server 2020-10-31 11:01:13 +08:00
IzzelAliz
9b4cfe81f0 Fix EndGateway teleporting 2020-10-31 10:58:31 +08:00
IzzelAliz
285f9f7f73 Reduce overload check interval
A too low interval seems likely to crash the server.
2020-10-31 10:56:56 +08:00
IzzelAliz
401a290c68 Find players from forge wrapper classes 2020-10-31 10:55:48 +08:00
IzzelAliz
6c8d6d832a Fix potion effect values may be null 2020-10-31 10:54:21 +08:00
IzzelAliz
86e1562219 Set gamemode cross respawn 2020-10-31 10:54:13 +08:00
IzzelAliz
298bcc82cc Fix world map not updating after creating new world (#64) 2020-10-31 10:53:00 +08:00
IzzelAliz
102af6c339 Fire correct event for teleporting 2020-10-31 10:50:08 +08:00
IzzelAliz
ef8723e283 Fix nether portal crash (#70) 2020-10-31 10:49:12 +08:00
IzzelAliz
fa9ec260ac Fix contains may not have title set. 2020-10-31 10:44:07 +08:00
IzzelAliz
08ab476f57 Fix nether portal crash (#70) 2020-10-31 10:41:46 +08:00
IzzelAliz
1528e14080 Update forge to 34.1.25 2020-10-21 15:01:09 +08:00
IzzelAliz
2361c206e4 Implement plugin patcher (#63) 2020-10-21 14:41:14 +08:00
IzzelAliz
99d3bce676 Port fixes of #28 #65
Call forge event when bukkit load world and vise versa
Allow recapture container for fast workbench
Fix golem and wither spawn not consuming blocks
Fix some inventory missing an owner (#65)
Fix wrong mapping with air block and item (#28)
2020-10-21 14:29:47 +08:00
IzzelAliz
77ccfa00e5 Workaround for MC-199487 2020-10-21 14:10:06 +08:00
IzzelAliz
345f4669d3 Port fix for #55 #60 from 1.15 2020-10-08 13:59:39 +08:00
IzzelAliz
f9499a729a Port fix for #46 #51 #59 and #61 from 1.15 2020-10-08 13:54:17 +08:00
IzzelAliz
fcc143a24f Port async catcher 2020-10-08 13:42:51 +08:00
IzzelAliz
7612e826d2 Update upstream and readme 2020-09-22 13:25:09 +08:00
IzzelAliz
6c82601fe9 Port fixes for #45 and #48 from 1.15 2020-09-18 09:31:14 +08:00
IzzelAliz
b7e47a47ed Update mappings 20200916, 1.16.3 (#49)(#52)
Fix UUID not sent in chat packet, close #52.
2020-09-18 09:21:59 +08:00
IzzelAliz
8d0dad9e47 Handle permission checks from Forge. 2020-09-04 21:32:24 +08:00
IzzelAliz
4d26098fc9 Port fixes of #43 and #44. 2020-09-04 16:15:00 +08:00
IzzelAliz
0c043344f0 Upstream: Fix getLocation for Cartography Table and Stonecutter 2020-09-04 16:10:22 +08:00
IzzelAliz
836dee238d Revert "Do not skip PlayerInteractEvent."
This reverts commit 2b5f9b69
2020-09-04 15:54:20 +08:00
IzzelAliz
ce6fa8da81 Upstream: Add ability to get location from smithing inventory 2020-09-03 14:22:41 +08:00
IzzelAliz
56547dd0ca Upstream: Add ArrowBodyCountChangeEvent 2020-09-03 14:20:15 +08:00
IzzelAliz
a401ef3111 Fix exception on Field#getGenericType (#42) 2020-09-03 13:25:00 +08:00
IzzelAliz
c5b9b05132 Pick fixes for #42, #43 from 1.15. 2020-09-03 13:24:59 +08:00