feat: add dailylogin feature
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
extends Control
|
||||
|
||||
@onready var close_btn = %CloseBtn
|
||||
@onready var save_btn = %SaveBtn
|
||||
@onready var status_lbl = %StatusLabel
|
||||
@onready var text_edit = %TextEdit
|
||||
|
||||
func _ready():
|
||||
close_btn.pressed.connect(func(): queue_free())
|
||||
save_btn.pressed.connect(_on_save)
|
||||
_load_config()
|
||||
|
||||
func _load_config():
|
||||
if not NakamaManager.session:
|
||||
status_lbl.text = "Not authenticated"
|
||||
return
|
||||
status_lbl.text = "Loading..."
|
||||
var res = await NakamaManager.client.rpc_async(NakamaManager.session, "get_daily_reward_config_admin", "{}")
|
||||
if res.is_exception():
|
||||
status_lbl.text = "Error: " + res.get_exception().message
|
||||
return
|
||||
|
||||
var json = JSON.new()
|
||||
if json.parse(res.payload) == OK:
|
||||
var config = json.get_data().get("config", {})
|
||||
if config.is_empty():
|
||||
# generate default 12 months for 2026/2027
|
||||
var year = 2026
|
||||
for m in range(1, 13):
|
||||
var m_str = "%d-%02d" % [year, m]
|
||||
var arr = []
|
||||
for d in range(30):
|
||||
arr.append(min(10 + d*5, 100)) # Reward is star currency, max 100
|
||||
config[m_str] = arr
|
||||
|
||||
text_edit.text = JSON.stringify(config, "\t")
|
||||
status_lbl.text = "Loaded"
|
||||
|
||||
func _on_save():
|
||||
var json = JSON.new()
|
||||
if json.parse(text_edit.text) != OK:
|
||||
status_lbl.text = "Invalid JSON syntax. Please check your formatting."
|
||||
return
|
||||
|
||||
status_lbl.text = "Saving..."
|
||||
var req = { "config": json.get_data() }
|
||||
var res = await NakamaManager.client.rpc_async(NakamaManager.session, "set_daily_reward_config", JSON.stringify(req))
|
||||
if res.is_exception():
|
||||
status_lbl.text = "Save error: " + res.get_exception().message
|
||||
else:
|
||||
status_lbl.text = "Config saved successfully!"
|
||||
Reference in New Issue
Block a user