mirror of
https://github.com/Mezeporta/Erupe.git
synced 2026-03-22 07:32:32 +01:00
feat(channelserver): implement monthly guild item claim tracking
Players could never claim monthly guild items because the handler always returned 0x01 (claimed). Now tracks per-character per-type (standard/HLC/EXC) claim timestamps in the stamps table, comparing against the current month boundary to determine claim eligibility. Adds MonthStart() to gametime, extends StampRepo with GetMonthlyClaimed/SetMonthlyClaimed, and includes schema migration 31-monthly-items.sql.
This commit is contained in:
@@ -663,6 +663,12 @@ type mockStampRepoForItems struct {
|
||||
exchangeErr error
|
||||
yearlyResult [2]uint16
|
||||
yearlyErr error
|
||||
|
||||
// Monthly item fields
|
||||
monthlyClaimed time.Time
|
||||
monthlyClaimedErr error
|
||||
monthlySetCalled bool
|
||||
monthlySetType string
|
||||
}
|
||||
|
||||
func (m *mockStampRepoForItems) GetChecked(_ uint32, _ string) (time.Time, error) {
|
||||
@@ -696,6 +702,16 @@ func (m *mockStampRepoForItems) Exchange(_ uint32, _ string) (uint16, uint16, er
|
||||
return m.exchangeResult[0], m.exchangeResult[1], m.exchangeErr
|
||||
}
|
||||
|
||||
func (m *mockStampRepoForItems) GetMonthlyClaimed(_ uint32, _ string) (time.Time, error) {
|
||||
return m.monthlyClaimed, m.monthlyClaimedErr
|
||||
}
|
||||
|
||||
func (m *mockStampRepoForItems) SetMonthlyClaimed(_ uint32, monthlyType string, _ time.Time) error {
|
||||
m.monthlySetCalled = true
|
||||
m.monthlySetType = monthlyType
|
||||
return nil
|
||||
}
|
||||
|
||||
// --- mockHouseRepoForItems ---
|
||||
|
||||
type mockHouseRepoForItems struct {
|
||||
|
||||
Reference in New Issue
Block a user