Skip to content
This repository was archived by the owner on Dec 3, 2022. It is now read-only.

Commit 9931669

Browse files
committed
fix config init problem, start to add AsyncListener
1 parent 80ef72a commit 9931669

File tree

6 files changed

+84
-15
lines changed

6 files changed

+84
-15
lines changed

src/main/java/top/wetabq/easyapi/api/CommonDynamicIntegrateAPI.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,9 @@ abstract class CommonDynamicIntegrateAPI<T, out I: DynamicIntegrateAPI<*, I>> :
2121

2222
override fun getAll(): Collection<T> = interfaceList
2323

24+
@Suppress("UNCHECKED_CAST")
2425
override fun removeAll() {
25-
interfaceList.forEach { remove(it) }
26+
(interfaceList.clone() as ArrayList<T> ).forEach { remove(it) }
2627
}
2728

2829
}

src/main/java/top/wetabq/easyapi/config/EasyConfig.kt

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,10 @@ import cn.nukkit.utils.ConfigSection
77
abstract class EasyConfig(configName:String, plugin: Plugin) : IEasyConfig {
88

99
private var config: Config = Config("${plugin.dataFolder}/$configName.yml", Config.YAML)
10-
private var configSection: ConfigSection
10+
protected var configSection: ConfigSection
1111

1212
init {
1313
this.configSection = config.rootSection
14-
init0()
15-
}
16-
17-
private fun init0() {
18-
init()
1914
}
2015

2116
override fun init() {

src/main/java/top/wetabq/easyapi/config/encoder/CodecEasyConfig.kt

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,26 @@ import cn.nukkit.plugin.Plugin
44
import cn.nukkit.utils.ConfigSection
55
import top.wetabq.easyapi.config.EasyConfig
66

7+
@Suppress("SENSELESS_COMPARISON")
78
abstract class CodecEasyConfig<T>(
89
configName:String,
910
plugin: Plugin
1011
) : EasyConfig(configName, plugin), ConfigCodec<T> {
1112

1213
var simpleConfig = linkedMapOf<String,T>()
13-
var sectionName = "config"
1414

1515
@Suppress("UNCHECKED_CAST")
1616
override fun initFromConfigSecion(configSection: ConfigSection) {
17-
(configSection[sectionName] as LinkedHashMap<String, Any>).forEach { (s, any) ->
17+
// if (simpleConfig == null) simpleConfig = linkedMapOf()
18+
(configSection as LinkedHashMap<String, Any>).forEach { (s, any) ->
1819
simpleConfig[s] = decode(any)
1920
}
2021
}
2122

2223
override fun spawnDefault(configSection: ConfigSection) {
23-
simpleConfig = linkedMapOf()
24-
sectionName = "config"
25-
configSection[sectionName] = simpleConfig
24+
// if (simpleConfig == null) simpleConfig = linkedMapOf()
25+
configSection.putAll(simpleConfig)
26+
configSection["notEmpty"] = "true"
2627
}
2728

2829
override fun saveToConfigSection(configSection: ConfigSection) {
@@ -31,7 +32,12 @@ abstract class CodecEasyConfig<T>(
3132
simpleConfig.forEach { (key, obj) ->
3233
encodeMap[key] = encode(obj)
3334
}
34-
configSection[sectionName] = encodeMap
35+
configSection.putAll(encodeMap)
36+
}
37+
38+
override fun isEmpty(): Boolean {
39+
// if (simpleConfig == null) simpleConfig = linkedMapOf()
40+
return simpleConfig.isEmpty() && configSection.isEmpty()
3541
}
3642

3743
}

src/main/java/top/wetabq/easyapi/config/encoder/advance/AdvanceCodecEasyConfig.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ abstract class AdvanceCodecEasyConfig<T>(
1212

1313
@Suppress("UNCHECKED_CAST")
1414
override fun initFromConfigSecion(configSection: ConfigSection) {
15-
(configSection[sectionName] as LinkedHashMap<String, Any>).forEach { (s, any) ->
15+
//simpleConfig = linkedMapOf()
16+
(configSection as LinkedHashMap<String, Any>).forEach { (s, any) ->
1617
if (any is LinkedHashMap<*, *>) {
1718
simpleConfig[s] = decode(any as LinkedHashMap<String, *>)
1819
}
@@ -25,7 +26,7 @@ abstract class AdvanceCodecEasyConfig<T>(
2526
simpleConfig.forEach { (key, obj) ->
2627
encodeMap[key] = encode(obj)
2728
}
28-
configSection[sectionName] = encodeMap
29+
configSection.putAll(encodeMap)
2930
}
3031

3132
}
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
package top.wetabq.easyapi.listener
2+
3+
import cn.nukkit.event.block.BlockBreakEvent
4+
import cn.nukkit.event.block.BlockPlaceEvent
5+
import cn.nukkit.event.entity.EntityArmorChangeEvent
6+
import cn.nukkit.event.entity.EntityDamageByEntityEvent
7+
import cn.nukkit.event.entity.EntityDamageEvent
8+
import cn.nukkit.event.entity.EntityDeathEvent
9+
import cn.nukkit.event.player.*
10+
11+
interface AsyncListener {
12+
13+
fun onPlayerChatEvent(event: PlayerChatEvent)
14+
15+
fun onPlayerCommandPreprocessEvent(event: PlayerCommandPreprocessEvent)
16+
17+
fun onPlayerDeathEvent(event: PlayerDeathEvent)
18+
19+
fun onPlayerBucketEmptyEvent(event: PlayerBucketEmptyEvent)
20+
21+
fun onPlayerBucketFillEvent(event: PlayerBucketFillEvent)
22+
23+
fun onPlayerDropItemEvent(event: PlayerDropItemEvent)
24+
25+
fun onPlayerEatFoodEvent(event: PlayerEatFoodEvent)
26+
27+
fun onPlayerFoodLevelChangeEvent(event: PlayerFoodLevelChangeEvent)
28+
29+
fun onPlayerFormRespondedEvent(event: PlayerFormRespondedEvent)
30+
31+
fun onPlayerGameModeChangeEvent(event: PlayerGameModeChangeEvent)
32+
33+
fun onPlayerInteractEntityEvent(event: PlayerInteractEntityEvent)
34+
35+
fun onPlayerInteractEvent(event: PlayerInteractEvent)
36+
37+
fun onPlayerItemHeldEvent(event: PlayerItemHeldEvent)
38+
39+
fun onPlayerJoinEvent(event: PlayerJoinEvent)
40+
41+
fun onPlayerLoginEvent(event: PlayerLoginEvent)
42+
43+
fun onPlayerMoveEvent(event: PlayerMoveEvent)
44+
45+
fun onPlayerPreLoginEvent(event: PlayerPreLoginEvent)
46+
47+
fun onPlayerQuitEvent(event: PlayerQuitEvent)
48+
49+
fun onPlayerRespawnEvent(event: PlayerRespawnEvent)
50+
51+
fun onPlayerTeleportEvent(event: PlayerTeleportEvent)
52+
53+
fun onBlockBreakEvent(event: BlockBreakEvent)
54+
55+
fun onBlockPlaceEvent(event: BlockPlaceEvent)
56+
57+
fun onEntityArmorChangeEvent(event: EntityArmorChangeEvent)
58+
59+
fun onEntityDamageByEntityEvent(event: EntityDamageByEntityEvent)
60+
61+
fun onEntityDamageEvent(event: EntityDamageEvent)
62+
63+
fun onEntityDeathEvent(event: EntityDeathEvent)
64+
65+
}

src/main/java/top/wetabq/easyapi/module/defaults/EasyBaseModule.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ object EasyBaseModule: SimpleEasyAPIModule() {
3636
.add(EasyAPICommand)
3737
this.registerAPI(SIMPLE_CONFIG, ConfigAPI())
3838
.add(SimpleConfig)
39+
SimpleConfig.init()
3940
val easyAPIConfig = this.registerAPI(EASY_API_CONFIG, SimpleConfigAPI(this.getModuleInfo().moduleOwner))
4041
.add(SimpleConfigEntry(TITLE_PATH, "&c[&eEasy&aAPI&c]".color()))
4142

0 commit comments

Comments
 (0)