@wayward/types 2.11.3-beta.dev.20220118.1 → 2.11.3-beta.dev.20220119.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -76,6 +76,7 @@ export default class ItemManager extends ObjectManager<Item, IItemManagerEvents>
76
76
  private static cachedWeights;
77
77
  private static cachedDefaultItemForGroup;
78
78
  private static cachedBestItemForTier;
79
+ private static cachedHighestItemActionTierForAction;
79
80
  private static cachedItemGroups;
80
81
  private static cachedItemsThatAreAcceptedAsOffer;
81
82
  private static cachedItemsThatAreUsedInRecipes;
@@ -85,6 +86,7 @@ export default class ItemManager extends ObjectManager<Item, IItemManagerEvents>
85
86
  static getItemTypes(): readonly ItemType[];
86
87
  static getItemsWithRecipes(): readonly ItemType[];
87
88
  static getBestItemForTier(item: ItemType | ItemTypeGroup): ItemType | undefined;
89
+ static getHighestItemActionTierForAction(action: ActionType): number | undefined;
88
90
  static isItemAcceptedAsOffer(item: ItemType): boolean | undefined;
89
91
  static isItemUsedInRecipe(item: ItemType): boolean | undefined;
90
92
  static isGroup(item: ItemType | ItemTypeGroup): item is ItemTypeGroup;
@@ -134,8 +134,8 @@ export interface IMultiplayerNetworkingOptions {
134
134
  enableWebRtcConnections: boolean;
135
135
  enablePacketNumberChecks: boolean;
136
136
  logPackets: boolean;
137
- logSyncChecks: boolean;
138
137
  recentPacketTracking: number;
138
+ recentHashedSyncCheckTracking: number;
139
139
  joinServerTimeout: number;
140
140
  steamNetworkTimeout: number;
141
141
  webRtcTimeout: number;
@@ -16,6 +16,7 @@ import { DisconnectReason, JoinServerRetryReason, MultiplayerSyncCheck, UnableTo
16
16
  import type { IMatchmakingInfo } from "multiplayer/matchmaking/IMatchmaking";
17
17
  import type { IConnection } from "multiplayer/networking/IConnection";
18
18
  import type { IPacket } from "multiplayer/packets/IPacket";
19
+ import DesyncPacket from "multiplayer/packets/server/DesyncPacket";
19
20
  export default class Multiplayer extends EventEmitter.Host<IMultiplayerEvents> {
20
21
  /**
21
22
  * Static steam account id when steam support is on
@@ -47,11 +48,12 @@ export default class Multiplayer extends EventEmitter.Host<IMultiplayerEvents> {
47
48
  private _currentPacketProcessing;
48
49
  private _currentSyncPacketsWaiting;
49
50
  private _currentSyncPacketsProcessing;
50
- private _syncCheckStack;
51
51
  private _activeSyncCheck;
52
- private _syncChecksSuppressed;
53
- private _recentPackets;
54
52
  private _enabledSyncChecks;
53
+ private readonly _recentHashedSyncChecks;
54
+ private _recentPackets;
55
+ private _syncChecksSuppressed;
56
+ private _syncCheckStack;
55
57
  private _disconnectingFromSyncIssue;
56
58
  private _reportedSyncHashMismatch;
57
59
  private readonly _autojoinEnabled;
@@ -140,14 +142,20 @@ export default class Multiplayer extends EventEmitter.Host<IMultiplayerEvents> {
140
142
  addKeepAliveTimeouts(): void;
141
143
  updateGlobalServerDirectory(): void;
142
144
  checkConnection(): Promise<void>;
143
- isSyncCheckEnabled(syncCheck: MultiplayerSyncCheck, failIfNotActiveOrSurpressed?: boolean): boolean;
145
+ isSyncCheckEnabled(syncCheck: MultiplayerSyncCheck): boolean;
144
146
  addSyncCheck(syncCheck: MultiplayerSyncCheck, value: any, addStackTrace?: boolean): void;
145
147
  addMiscSeedSyncCheck(island: Island, ...messages: any[]): void;
146
148
  addBeforeSyncChecks(packet: IPacket): void;
147
149
  addAfterSyncChecks(packet: IPacket): void;
148
150
  sendChatMessage(sender: Player, message: string): void;
149
151
  private addDefaultSyncChecks;
152
+ /**
153
+ * Returns sync check hashes
154
+ * @returns [all sync checks hash, enabled sync checks hash]
155
+ */
150
156
  private getPacketSyncChecks;
157
+ private recordHashedSyncCheck;
158
+ private filterEnabledSyncChecks;
151
159
  private hashSyncCheckHash;
152
160
  private clearJoinServerRetryTimeout;
153
161
  createOrExtendSteamNetworkConnectionWebRTCFallbackTimer(timeoutTime: number): void;
@@ -169,6 +177,8 @@ export default class Multiplayer extends EventEmitter.Host<IMultiplayerEvents> {
169
177
  private processPacket;
170
178
  private synchronizationCheck;
171
179
  private logSyncCheckErrors;
180
+ private sendDesyncPacket;
181
+ processDesyncPacket(connection: IConnection, desyncPacket: DesyncPacket): void;
172
182
  private sendPacketInternal;
173
183
  private onStateChange;
174
184
  private convertToMatchmakingInfo;
@@ -17,12 +17,16 @@ export declare enum PacketType {
17
17
  }
18
18
  export interface ISynchronizationCheckData {
19
19
  packetNumber?: number;
20
- beforeSyncChecks?: ISyncCheck;
21
- afterSyncChecks?: ISyncCheck;
20
+ beforeEnabledSyncChecksHash?: number;
21
+ afterEnabledSyncChecksHash?: number;
22
22
  beforeSyncChecksHash?: number;
23
23
  afterSyncChecksHash?: number;
24
24
  }
25
25
  export declare type ISyncCheck = Record<number, Array<number | string>>;
26
+ export interface IHashedSyncCheck {
27
+ hash: number;
28
+ syncCheck: ISyncCheck;
29
+ }
26
30
  export interface IPacket<T = any> {
27
31
  getAllowedStates(): ConnectionState;
28
32
  getArrayBuffer(id?: number): ArrayBuffer;
@@ -8,11 +8,17 @@
8
8
  * Wayward is a copyrighted and licensed work. Modification and/or distribution of any source files is prohibited. If you wish to modify the game in any way, please refer to the modding guide:
9
9
  * https://github.com/WaywardGame/types/wiki
10
10
  */
11
+ import type { IHashedSyncCheck } from "multiplayer/packets/IPacket";
11
12
  import ServerPacket from "multiplayer/packets/ServerPacket";
12
13
  /**
13
14
  * The player sends this to the server when they have desynced
14
15
  */
15
16
  export default class DesyncPacket extends ServerPacket {
17
+ packetId: number;
18
+ packetDebugInfo: string;
19
+ hashedSyncCheck: IHashedSyncCheck;
20
+ checkBefore: boolean;
21
+ shouldDisconnect: boolean;
16
22
  logs: string;
17
23
  getDebugInfo(): string;
18
24
  isSyncCheckEnabled(): boolean;
@@ -9,8 +9,8 @@
9
9
  * https://github.com/WaywardGame/types/wiki
10
10
  */
11
11
  import type { IMovementIntent } from "game/entity/player/IPlayer";
12
- import PlayerTargetedSharedPacket from "multiplayer/packets/PlayerTargetedSharedPacket";
13
- export default class UpdateMovementIntentPacket extends PlayerTargetedSharedPacket {
12
+ import PlayerTargetedServerPacket from "multiplayer/packets/PlayerTargetedServerPacket";
13
+ export default class UpdateMovementIntentPacket extends PlayerTargetedServerPacket {
14
14
  intent: IMovementIntent;
15
15
  getDebugInfo(): string;
16
16
  isAllowedWhenPaused(): boolean;
@@ -8,10 +8,11 @@
8
8
  * Wayward is a copyrighted and licensed work. Modification and/or distribution of any source files is prohibited. If you wish to modify the game in any way, please refer to the modding guide:
9
9
  * https://github.com/WaywardGame/types/wiki
10
10
  */
11
- import PlayerTargetedServerPacket from "multiplayer/packets/PlayerTargetedServerPacket";
12
- export default class LogsPacket extends PlayerTargetedServerPacket {
11
+ import PlayerTargetedSharedPacket from "multiplayer/packets/PlayerTargetedSharedPacket";
12
+ import { LogLineType } from "utilities/Log";
13
+ export default class LogsPacket extends PlayerTargetedSharedPacket {
13
14
  logs: string;
14
- containsServerGameState: boolean | undefined;
15
+ logType: LogLineType;
15
16
  getDebugInfo(): string;
16
17
  isSyncCheckEnabled(): boolean;
17
18
  isAllowedWhenPaused(): boolean;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@wayward/types",
3
3
  "description": "TypeScript declarations for Wayward, used for modding.",
4
- "version": "2.11.3-beta.dev.20220118.1",
4
+ "version": "2.11.3-beta.dev.20220119.1",
5
5
  "license": "MIT",
6
6
  "repository": {
7
7
  "type": "git",