Skip to content

Commit

Permalink
feat: 🎸 japanize変換の状態を保存するファイルの仕様を変更
Browse files Browse the repository at this point in the history
  • Loading branch information
BlueSheep2804 committed Jul 19, 2023
1 parent 00add08 commit d28c4d7
Show file tree
Hide file tree
Showing 5 changed files with 16 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package io.github.bluesheep2804.selenechat

import io.github.bluesheep2804.selenechat.config.SeleneChatConfigData
import io.github.bluesheep2804.selenechat.config.SeleneChatConfigManager
import io.github.bluesheep2804.selenechat.japanize.JapanizePlayers
import io.github.bluesheep2804.selenechat.japanize.JapanizePlayersManager
import io.github.bluesheep2804.selenechat.player.SeleneChatPlayer
import io.github.bluesheep2804.selenechat.resource.ResourceData
Expand All @@ -17,7 +16,7 @@ interface IPlugin {
val resource: ResourceData
get() = resourceManager.resource
val japanizePlayersManager: JapanizePlayersManager
val japanizePlayers: JapanizePlayers
val japanizePlayers: MutableMap<String, Boolean>
get() = japanizePlayersManager.japanizePlayers
fun getAllPlayers(): List<SeleneChatPlayer>
fun getPlayer(name: String): SeleneChatPlayer
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package io.github.bluesheep2804.selenechat

import io.github.bluesheep2804.selenechat.config.SeleneChatConfigData
import io.github.bluesheep2804.selenechat.config.SeleneChatConfigManager
import io.github.bluesheep2804.selenechat.japanize.JapanizePlayers
import io.github.bluesheep2804.selenechat.japanize.JapanizePlayersManager
import io.github.bluesheep2804.selenechat.resource.ResourceData
import io.github.bluesheep2804.selenechat.resource.ResourceManager
Expand All @@ -17,8 +16,8 @@ object SeleneChat {
get() = resourceManager.resource
val japanizePlayersManager: JapanizePlayersManager
get() = plugin.japanizePlayersManager
val japanizePlayers: JapanizePlayers
get() = japanizePlayersManager.japanizePlayers
val japanizePlayers: MutableMap<String, Boolean>
get() = plugin.japanizePlayers

fun setPluginInstance(plugin: IPlugin) {
this.plugin = plugin
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
package io.github.bluesheep2804.selenechat.japanize

import com.charleskorn.kaml.Yaml
import kotlinx.serialization.builtins.MapSerializer
import kotlinx.serialization.builtins.serializer
import java.io.File
import java.io.FileInputStream
import java.io.FileOutputStream

class JapanizePlayersManager(private val file: File) {
lateinit var japanizePlayers: JapanizePlayers
lateinit var japanizePlayers: MutableMap<String, Boolean>
private val japanizePlayersSerializer = MapSerializer(String.serializer(), Boolean.serializer())
init {
reload()
}
Expand All @@ -17,19 +20,19 @@ class JapanizePlayersManager(private val file: File) {
}
if (!japanizeFile.exists()) {
japanizeFile.createNewFile()
val japanizePlayers = JapanizePlayers()
val japanizePlayers = emptyMap<String, Boolean>()
val output = FileOutputStream(japanizeFile)
Yaml.default.encodeToStream(JapanizePlayers.serializer(), japanizePlayers, output)
Yaml.default.encodeToStream(japanizePlayersSerializer, japanizePlayers, output)
}
val japanizeFileInputStream = FileInputStream(japanizeFile)
japanizePlayers = Yaml.default.decodeFromStream(JapanizePlayers.serializer(), japanizeFileInputStream)
japanizePlayers = Yaml.default.decodeFromStream(japanizePlayersSerializer, japanizeFileInputStream).toMutableMap()
}
fun save() {
val japanizeFile = File(file, "jp.yml")
if (!file.exists()) {
file.mkdir()
}
val output = FileOutputStream(japanizeFile)
Yaml.default.encodeToStream(JapanizePlayers.serializer(), japanizePlayers, output)
Yaml.default.encodeToStream(japanizePlayersSerializer, japanizePlayers, output)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,25 +15,21 @@ abstract class SeleneChatPlayer {
open val isOnline = true
val isEnabledJapanize: Boolean
get() {
return if (!SeleneChat.japanizePlayers.enable.contains(uniqueId.toString()) && !SeleneChat.japanizePlayers.disable.contains(uniqueId.toString())) {
config.japanizeDefault
return if (SeleneChat.japanizePlayers.containsKey(uniqueId.toString())) {
SeleneChat.japanizePlayers[uniqueId.toString()]!!
} else {
SeleneChat.japanizePlayers.enable.contains(uniqueId.toString())
config.japanizeDefault
}
}
abstract fun sendMessage(msg: Component)
open fun asHoverEvent(): HoverEvent<out Examinable> {
return HoverEvent.showEntity(HoverEvent.ShowEntity.of(Key.key("player"), uniqueId, Component.text(displayName)))
}
fun enableJapanize() {
if (this.isEnabledJapanize) return
SeleneChat.japanizePlayers.enable.add(uniqueId.toString())
SeleneChat.japanizePlayers.disable.remove(uniqueId.toString())
SeleneChat.japanizePlayers[uniqueId.toString()] = true
}
fun disableJapanize() {
if (!this.isEnabledJapanize) return
SeleneChat.japanizePlayers.disable.add(uniqueId.toString())
SeleneChat.japanizePlayers.enable.remove(uniqueId.toString())
SeleneChat.japanizePlayers[uniqueId.toString()] = false
}
fun toggleJapanize() {
if (isEnabledJapanize) disableJapanize() else enableJapanize()
Expand Down

0 comments on commit d28c4d7

Please sign in to comment.