#ShopAPI 질문
1 messages · Page 1 of 1 (latest)
커렌시 셋 불러올 수 있을 걸요
실례지만 예제 가능할까요? 커렌시 셋이 안보여서요
api.getShopService().all()
감사합니다 🙂
아 저거 아님
Currency 객체는 따로 없는거 같고 Wallet(CurrencyKey)로 불러오는 방식인거 같네요
WalletService 추적해보니깐 그런거 같아요..
CustomWalletAdapter::getCurrencies에는 어댑트한 것만 나오나요?
Hqshop에서 만든 커렌시 안 나오나?
한 번 해보셔요
커스텀
아
네 ?
1.0.3 입니다
1.0.7-SNAPSHOT
거기서 이거 확인해 보면 될 듯
제가 볼 땐 이거 맞을 듯여
아 맞는거 같아요 감사합니다
?
엇 runBlocking ?
오 자바유저는 좋습니다 ㅋㅋㅋ
그냥 명칭만 vault라 표현한 거 아닌가?
맞아여 ㅇㅁㅇ ㅋㅋ 그래도 키는 잡아야해서 vault 키 잡으면 Vault쪽으로 훅
제쪽 currency 에는 커스텀으로 추가된것만 있을듯 ?
근데 상점 바이너리 파일 db에 보관하는 건 어떻게 생각하나요? ㅋㅋㅋㅋ
프록시 서버면 쓸만할텐데 많이 느리려나
캬 빠르다
아무래도 다른 쓰래드로 넘어가기때문에
혹~시나 메인 쓰래드에서 이후 작업을 한다면
consumer 안에서나 뭐 가져와서 다시 메인쓰래드에서 작업하도록 하는 작업이 필요하긴 할듯용
runTask ?
엄 ? 그
Vault 는 자동으로 연결되긴해여
근데 이제 저게
HQShop 로드 전에
ServicesManager 에 register 해주셔야될듯여
지금 보면 HQShop 로드 이후에 Economy 구현체를 등록하는 것 같은데
HQShop 로드 전에 등록되도록 구조를 바꾸셔야되긴해영
제가 지금 하고 싶은게 HQUpgrade Vault 비용을 HQShop Currency(지정 화폐)랑 연결을 하고 싶은데
지금 말씀으로는 자동으로 연결된다고 하셨는데, 연결된 화폐를 알 수 있을까요?
아 Shop 에서 만든 재화여 ?
네네
플레이어 월렛 가져오고
#1326514503520882760 message
그리고 그
wallet 가져가는거
uniqueId 로 하시면
database 에 있는거 긁어서
Player 로 가져가시는걸 추천드려여
그건 메모리에있는걸로 가져가서
이거는 지금
하고는? 있는거 같은데
제가 여쭈어보는건 Vault 자동 연결된 HQShop-Currency 입니다
자동 연결 된다는건 그
Vault 에 Economy 를 등록한 경우인데
지금 보니까
Vault 에 HQShop 재화를 등록하는 경우로 보이네여
네네 맞아요
123
근데
@Module
어케 아셨지
따로 안적었는데
개고수 ;;
코사인님 오픈소스 확인했어요
eee
@PluginDepend(["Vault", "HQShop"])
@Module
class VaultHookModule(
private val serviceManager: ServicesManager,
private val plugin: HQBukkitPlugin,
private val server: Server,
private val settingRegistry: SettingRegistry
) {
@Setup
fun setup() {
serviceManager.register(Economy::class.java, object : AbstractEconomy() {
private val shopAPI: ShopAPI by lazy {
serviceManager.getRegistration(ShopAPI::class.java)?.provider!!
}
override fun isEnabled(): Boolean = settingRegistry.isEnabled()
override fun getName(): String = "HQCurrencyVault"
override fun hasBankSupport(): Boolean = false
override fun fractionalDigits(): Int = 0
override fun format(amount: Double): String = ""
override fun currencyNamePlural(): String = ""
override fun currencyNameSingular(): String = ""
override fun hasAccount(playerName: String?): Boolean = true
override fun hasAccount(playerName: String?, worldName: String?): Boolean = true
override fun getBalance(playerName: String): Double {
return runBlocking {
shopAPI.getWalletService().getWallet(
server.getOfflinePlayer(playerName).uniqueId
)?.getBalance(settingRegistry.getCurrencyKey()!!)?.toDouble() ?: 0.0
}
}
...
softDepend 에 HQShop 거시고
service manager 에서 받아가지마시공 저기 settingRegistry 아래에 ShopAPI 도 주입받으셔용
name: HQCurrencyVault
main: dev.skh6075.hqcurrencyvault.Bootstrap
version: 1.0.0
api-version: 1.19
depend:
- HQFramework
- Vault
softdepend:
- HQShop
@PluginDepend(["Vault", "HQShop"])
@Module
class VaultHookModule(
private val serviceManager: ServicesManager,
private val plugin: HQBukkitPlugin,
private val server: Server,
private val settingRegistry: SettingRegistry,
private val shopAPI: ShopAPI
) {
@Setup
fun setup() {
serviceManager.register(Economy::class.java, object : AbstractEconomy() {
override fun isEnabled(): Boolean = settingRegistry.isEnabled()
override fun getName(): String = "HQCurrencyVault"
override fun hasBankSupport(): Boolean = false
override fun fractionalDigits(): Int = 0
override fun format(amount: Double): String = ""
override fun currencyNamePlural(): String = ""
override fun currencyNameSingular(): String = ""
override fun hasAccount(playerName: String?): Boolean = true
override fun hasAccount(playerName: String?, worldName: String?): Boolean = true
override fun getBalance(playerName: String): Double {
return runBlocking {
shopAPI.getWalletService().getWallet(
server.getOfflinePlayer(playerName).uniqueId
)?.getBalance(settingRegistry.getCurrencyKey()!!)?.toDouble() ?: 0.0
}
}
...
@winged flare 우선 HQFramework가 아니라 레거시로 제작해서 성공했습니다
그런데, 사진과 같이 %player.formatted-vault% placeholder가 동작하지 않습니다
Vault연결은 확인했습니다
서버에 Vault 에 연결 된 다른 플러그인이 있는거 아닌가용 ?
아~
formatted-vault ?
그건 아마 안먹을거에여
그건 외부에서 Economy 를 구현했을때 사용되는 placeholder 긴 해요
근데 지금 구조가 이해가 안되는게 음 ..
HQShop에서 만든 재화를
외부에서 사용하기 위해 Economy 를 구현한게 아닌가요 ?
네네 맞아요
그럼 그 재화를 표시하면 되는거 아닌가용 ?
%player.formatted-재화키%
vault 는 외부 연결용이고 HQShop내에는 그 재화가 있을테니깐용
네네 그걸 그 shop 테마에다가용
소지금 : 0 이라고 뜨는 부분에
0 에 vault 가 걸려있다는거 아닌가융 ?
소지금 : %player.formatted-vault% 를
소지금 : %player.formatted-gold% 로
[13:12:56] [Server thread/INFO]: [HQUpgrade] Enabling HQUpgrade v1.0.6
[13:12:56] [DefaultDispatcher-worker-1/INFO]: [HQUpgrade] Enabling.
[13:12:56] [customcrops-worker-3/INFO]: [CustomCrops] You are using the latest version.
[13:12:56] [Server thread/WARN]: org.koin.core.error.InstanceCreationException: Could not create instance for '[Singleton:'kr.hqservice.upgrade.core.hook.vault.EconomyManager',binds:java.lang.Object]'
[13:12:56] [Server thread/WARN]: at org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:57)
[13:12:56] [Server thread/WARN]: at org.koin.core.instance.SingleInstanceFactory.create(SingleInstanceFactory.kt:46)
[13:12:56] [Server thread/WARN]: at org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:55)
[13:12:56] [Server thread/WARN]: at org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:53)
[13:12:56] [Server thread/WARN]: at org.koin.mp.KoinPlatformTools.synchronized(KoinPlatformTools.kt:36)
[13:12:56] [Server thread/WARN]: at org.koin.core.instance.SingleInstanceFactory.get(SingleInstanceFactory.kt:53)
[13:12:56] [Server thread/WARN]: at hqframework-bukkit-dist.jar//kr.hqservice.framework.global.core.component.registry.AbstractComponentRegistry.injectParameters(AbstractComponentRegistry.kt:412)
[13:12:56] [Server thread/WARN]: at hqframework-bukkit-dist.jar//kr.hqservice.framework.global.core.component.registry.AbstractComponentRegistry.callByInjectedParameters(AbstractComponentRegistry.kt:356)
[13:12:56] [Server thread/WARN]: at hqframework-bukkit-dist.jar//kr.hqservice.framework.global.core.component.registry.AbstractComponentRegistry.callByInjectedParameters$default(AbstractComponentRegistry.kt:352)
HQUpgrade 플러그인 활성화가 안되는데 혹시 Vault와 관련이 있을까요
😭

HQUpgrade의 plugin.yml를 수정해야한다는 말씀이실까요? 아니면 반대로 HQCurrencyVault가 HQUpgrade 보다 먼저 활성화 해야한다는 말씀이실까요
저는 소스가 없는데요...
6시10분쯤 집 도착해서 그때 수정 한 번 해보겠습니다 감사합니다
