115 Commits

Author SHA1 Message Date
45d42f89d8 implement mb app name 2025-03-18 16:13:29 -07:00
4dca96754c send room id again in MultiplayerID 2025-03-18 16:09:35 -07:00
8abf75a3e9 initial implementation (wojs)
-added CurrentZone property to Viking model
-implemented ``InviteBuddy`` and ``GetBuddyLocation``
2025-03-18 15:45:52 -07:00
344888f61f make new messages not appear in message queue after 5 minutes instead of 30 2025-03-18 13:44:58 -07:00
bfc5b6a974 add log message that says a restart to the api is required to reestablish connection with mmo 2025-03-18 13:44:01 -07:00
c57d3589c0 sync with master 2025-03-18 13:01:54 -07:00
583bc04c1a don't check message queue if message is type buddylist as to not conflict with `SBE` 2025-03-18 12:49:05 -07:00
80c55b4317 quick fix for math blaster
-why is this looking more broken than wojs
2025-03-17 15:02:07 -07:00
6fab853d5f implement realtime communication with mmo server
-also added messages for anyone on wojs or earlier for ribbons
-mmo communication occurs in the ``MessagingService`` and ``BuddyService``
-for now this requires a DLL from the game client as we should not distribute the SmartFox client openly here due to it being closed sourced
2025-03-17 14:05:43 -07:00
3cde6f07ae revert rank up message due to buggy achievement store 2025-03-11 22:24:45 -07:00
feb0291dc6 bugfixes
- wojs sucks
2025-03-11 22:16:56 -07:00
3762b23a42 sod fix
i just now got sod working locally
2025-03-11 21:04:25 -07:00
69a2e33ee6 initial work
- add message to viking if level up is detected and wojs is game version
- crappy fix for bug where viking rank isn't displayed correctly in some areas
- add empty url's for audio and image (otherwise cutscene would not play)
2025-03-11 18:01:08 -07:00
e10f80580a implement `BlockBuddy`
messaging bug fix
2025-03-11 14:36:16 -07:00
226e524f37 merge upstream 2025-03-09 15:14:57 -07:00
Robert Paciorek
db795d93a4 bugfixes
- allow to add items to store while using replace action in server-side mods
- fixed wrong (inverted) logic for LastLevelCompleted
- fixed 'already an open DataReader' isse on GetTopRated* endpoints
- disabled AchievementTaskID 37 (WoJS) due to causing bug
2025-03-09 08:27:49 +00:00
ded2acc5ca implement precense endpoint 2025-03-07 17:42:44 -08:00
44aa98ef3a implement buddy codes 2025-03-07 17:20:27 -08:00
5d0cb1581d further system message fixes 2025-03-06 17:48:08 -08:00
b090604bc1 add message for earning xp (wojs) 2025-03-06 12:35:25 -08:00
7e29d5cd4a add system message support 2025-03-06 12:01:37 -08:00
c8c70b220e revert nullable `ToVikingId` 2025-03-06 11:49:59 -08:00
b7b99cd353 add `IsPrivate field to Message` 2025-03-06 11:33:08 -08:00
3ba60972ad fix best buddy set 2025-03-06 10:59:13 -08:00
6deebb947b implement `UpdateBestBuddy` 2025-03-06 10:52:16 -08:00
5bd62186f0 implement `RemoveBuddy`
modify ``SendMessage``
add message of typeid 21 when reply is made
reworks some things in ``BuddyService``
2025-03-03 17:00:58 -08:00
684e8691d8 implement `AddBuddy and ApproveBuddy` 2025-03-03 13:39:56 -08:00
6ede8af204 implement `BuddyService`
add ``CreatedAt`` to ``Buddy`` model
add missing schemas
2025-03-03 13:29:34 -08:00
4922223bb2 fix issues with replies 2025-03-02 19:56:11 -08:00
157f8fc455 implement endpoints in `MessagingController` 2025-03-02 18:52:22 -08:00
c53b6b9348 implement `MessagingService`
add additional messaging schemas
2025-03-02 18:20:35 -08:00
3f408bbae6 change response in `AddBanToViking` 2025-03-02 15:58:42 -08:00
df4c7e4017 introduce `Internal` namespace
implement ``ModerationController``
2025-02-27 14:50:46 -08:00
3800fc49c8 implement `ModerationService`
add type ``NotBanned`` to ``UserBanType`` enum
2025-02-26 14:00:27 -08:00
Robert Paciorek
3229464c02 correct handling adding XP in child->titan levelup
(this can happen with a quick conversion child->adult->titan, wrong order of `SetRaisedPet` requests or missed request)
2025-02-19 18:37:08 +00:00
YoshiCraft64
cecaa50610
support for old ("steps") missions (#20)
* add support for old missions API (aka "steps missions")
* config option to disable loading non SoD Data (used only for missions and achievements for now)
* make AuthenticateUser endpoint compatible with games that use e-mail as login
* add api keys for lands
* add GetGameCurrency endpoint
* allow create empty stores and add store "8" (empty)

---------

Co-authored-by: Robert Paciorek <robert@opcode.eu.org>
2025-02-13 22:58:19 +01:00
Robert Paciorek
13df822608 rework achievements system + minor cleanup
rework achievements system:
    - support for Achievements page in journal
    - register achievement tasks in database to avoid duplicate rewards and to register progress (achievement levels)
    - better achievement tasks xml database (for multiple games)
    - support for older games SetUserAchievementTask (V1)
    - add some missed achievement IDs
    - move achievement data to Resources/achievements/

additionally:
    - add mmo zones for MaM and some additional mmo zones for EMD
    - move missions Resources into Resources/missions/
    - split SoD/MaM missions into separte files
    - move rank data to Resources/ranks/
    - cleanup sodoff.csproj

SQLite database schema changes:

```
CREATE TABLE "AchievementTaskState" (
	"VikingId"	INTEGER NOT NULL,
	"TaskId"	INTEGER NOT NULL,
	"Points"	INTEGER NOT NULL,
	CONSTRAINT "PK_AchievementTaskState" PRIMARY KEY("TaskId","VikingId"),
	CONSTRAINT "FK_AchievementTaskState_Vikings_VikingId" FOREIGN KEY("VikingId") REFERENCES "Vikings"("Id") ON DELETE CASCADE
);
```
2025-02-08 10:29:56 +00:00
YesntSoup
2c4d99a84c
Change AddAchievementPoints to account for overflow and underflow (#8)
This is for minisaurs in WoJ, but I think it would be a good idea in general, so I didn't limit it to WoJ.

The issue happens because if you buy medicine for minisaurs. It takes away one coin, and so if you already have 0 coins, the server currently returns your coin count as int.MaxValue.

This is tested in WoJ 1.1.0 and 1.21.0. I tested buying, overflowing, underflowing, using commands with big and negative values and playing games.
2024-11-19 22:50:19 +01:00
Spirtix
e29f10c406
Purchase optimization (#3)
* purchase optimization

* purchase: simplify wallet update

* fix purchase: swap coins and gems

* purchase: rename mysteryBox to addAsMysteryBox

* purchase: adjust item quantity note

* purchase: change GetItemQuantity API
2024-07-25 22:54:48 +02:00
Hipposgrumm
a0f7b1ba3e Fixed Mutt Pods + Implemented GetTopAchievementPointBuddiesByType
* Mutt Couch Fixes
Removed duplicate mutt from the couch.
Mutts on couch in other players' mutt pods will now reflect that player's account.

* Buddies list will now appear on the sidebar, making the mutt pod tutorial possible.

---------

* Fixed some issues that were pointed out.

* ContentController.GetUnselectedPetByTypes now uses regular IF check for setting owner viking.

* remove unused apiKey from GetActiveRaisedPet args
2024-07-12 07:44:30 +00:00
meleestars
9993198a9b Implemented neighborhoods, fixed default houses
Also:
* implemented ``GetAvatarByUserID`` from @Moonbase's previous PR.
* implemented ``GetPeriodicGameDataByGame`` and ``GetGamePlayDataForDateRange``

---------

Co-authored-by: Alan Moon <alanmoonbase2004@gmail.com>
2024-07-10 08:27:23 +00:00
meleestars
2ec4358a39 Implemented `GetGameDataByUser` 2024-07-10 08:20:53 +00:00
Robert Paciorek
1dfcc655eb support for MMO in SuperSecret
thanks to HaiFire
2024-04-30 12:13:46 +00:00
Robert Paciorek
2d9b83db89 bugfixes
- fix "No soil plots in v.2.9"
  - do not send null `UserItemPosition.Uses` for old clients
- fix "unable to do the expansion missions in Sodoff 2.9"
  - move expansion board missions to Headmaster for old versions
- fix race condition on PurchaseItems (causing negative gems amount issue)
- move gems bundles to correct store
  - also fix "gems bundles not show after click on gems counter" issue
- fix "internal error neighborhood" (WoJS)
  (caused by room item with null item)
- fix "Release date is set to creation date upon being released" (WoJS)
  - update GrowTime value in SetRaisedPetInactive
2024-04-09 00:21:06 +00:00
Robert Paciorek
c4461263fa fixes for mmo support in old versions/other games 2024-04-02 12:44:11 +00:00
Robert Paciorek
446c40ccea merge House into SavedData, WoJS 1.1 vs 1.21 store
- use generic XML save system (SavedData) for Houses
- add support for return different stores for WoJS 1.1 and 1.21 (based on ApiKey)
- change values of ClientVersion / gameVersion for non SoD games and some version checks logic
- common function for Viking creation for call in RegisterChild and in RegisterParent
- add SS (standard) apiKey and WoJS 1.21 (custom) apiKey
2024-03-17 20:46:40 +00:00
Robert Paciorek
9d89a6b6da rework GetMMOServerInfoWithZone
add MMOSupportMinVersion configure setting
2024-03-16 22:13:54 +00:00
1600938902 WoJS: Use DisplayName in GamesData
- Use DisplayName instead of Viking Name

Co-authored-by: Robert Paciorek <robert@opcode.eu.org>
2024-03-14 20:33:08 +00:00
Robert Paciorek
88aa184881 bugfix: internal error when not use middle name 2024-03-03 14:00:35 +00:00
Robert Paciorek
6960aadcc3 fix set Jumpee name (and init move tutorial) 2024-03-03 14:00:10 +00:00