Updated to 3.9.1 #33

Merged
chomp merged 1 commits from 3.9.1-DEV into master 2024-07-13 14:55:42 -04:00
235 changed files with 547 additions and 651 deletions

View File

@ -1,4 +1,4 @@
# Mod examples for v3.9.0
# Mod examples for v3.9.1
A collection of example mods that perform typical actions in SPT

View File

@ -74,7 +74,7 @@ export declare class ProfileCallbacks {
/**
* Handle client/profile/settings
*/
getProfileSettings(url: string, info: IGetProfileSettingsRequest, sessionId: string): IGetBodyResponseData<string>;
getProfileSettings(url: string, info: IGetProfileSettingsRequest, sessionId: string): IGetBodyResponseData<boolean>;
/**
* Handle client/game/profile/search
*/

View File

@ -122,5 +122,5 @@ export declare class ProfileController {
/**
* Handle client/profile/settings
*/
setChosenProfileIcon(sessionId: string, request: IGetProfileSettingsRequest): void;
setChosenProfileIcon(sessionId: string, request: IGetProfileSettingsRequest): boolean;
}

View File

@ -23,7 +23,6 @@ import { LocaleService } from "@spt/services/LocaleService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { MailSendService } from "@spt/services/MailSendService";
import { PlayerService } from "@spt/services/PlayerService";
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
import { ICloner } from "@spt/utils/cloners/ICloner";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
import { TimeUtil } from "@spt/utils/TimeUtil";
@ -42,12 +41,11 @@ export declare class QuestController {
protected questConditionHelper: QuestConditionHelper;
protected playerService: PlayerService;
protected localeService: LocaleService;
protected seasonalEventService: SeasonalEventService;
protected localisationService: LocalisationService;
protected configServer: ConfigServer;
protected cloner: ICloner;
protected questConfig: IQuestConfig;
constructor(logger: ILogger, timeUtil: TimeUtil, httpResponseUtil: HttpResponseUtil, eventOutputHolder: EventOutputHolder, databaseService: DatabaseService, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, mailSendService: MailSendService, profileHelper: ProfileHelper, traderHelper: TraderHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, localeService: LocaleService, seasonalEventService: SeasonalEventService, localisationService: LocalisationService, configServer: ConfigServer, cloner: ICloner);
constructor(logger: ILogger, timeUtil: TimeUtil, httpResponseUtil: HttpResponseUtil, eventOutputHolder: EventOutputHolder, databaseService: DatabaseService, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, mailSendService: MailSendService, profileHelper: ProfileHelper, traderHelper: TraderHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, localeService: LocaleService, localisationService: LocalisationService, configServer: ConfigServer, cloner: ICloner);
/**
* Handle client/quest/list
* Get all quests visible to player
@ -63,12 +61,6 @@ export declare class QuestController {
* @returns true if quest can be seen/accepted by player of defined level
*/
protected playerLevelFulfillsQuestRequirement(quest: IQuest, playerLevel: number): boolean;
/**
* Should a quest be shown to the player in trader quest screen
* @param questId Quest to check
* @returns true = show to player
*/
protected showEventQuestToPlayer(questId: string): boolean;
/**
* Handle QuestAccept event
* Handle the client accepting a quest and starting it

View File

@ -1,4 +1,4 @@
import { IChatCommand, ICommandoCommand } from "@spt/helpers/Dialogue/Commando/IChatCommand";
import { IChatCommand } from "@spt/helpers/Dialogue/Commando/IChatCommand";
import { IDialogueChatBot } from "@spt/helpers/Dialogue/IDialogueChatBot";
import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest";
import { IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
@ -7,13 +7,9 @@ import { MailSendService } from "@spt/services/MailSendService";
export declare abstract class AbstractDialogueChatBot implements IDialogueChatBot {
protected logger: ILogger;
protected mailSendService: MailSendService;
protected chatCommands: IChatCommand[] | ICommandoCommand[];
constructor(logger: ILogger, mailSendService: MailSendService, chatCommands: IChatCommand[] | ICommandoCommand[]);
/**
* @deprecated As of v3.7.6. Use registerChatCommand.
*/
registerCommandoCommand(chatCommand: IChatCommand | ICommandoCommand): void;
registerChatCommand(chatCommand: IChatCommand | ICommandoCommand): void;
protected chatCommands: IChatCommand[];
constructor(logger: ILogger, mailSendService: MailSendService, chatCommands: IChatCommand[]);
registerChatCommand(chatCommand: IChatCommand): void;
abstract getChatBot(): IUserDialogInfo;
protected abstract getUnrecognizedCommandMessage(): string;
handleMessage(sessionId: string, request: ISendMessageRequest): string;

View File

@ -1,9 +1,5 @@
import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest";
import { IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
/**
* @deprecated As of v3.7.6. Use IChatCommand. Will be removed in v3.9.0.
*/
export type ICommandoCommand = IChatCommand;
export interface IChatCommand {
getCommandPrefix(): string;
getCommandHelp(command: string): string;

View File

@ -22,6 +22,7 @@ import { DatabaseService } from "@spt/services/DatabaseService";
import { LocaleService } from "@spt/services/LocaleService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { MailSendService } from "@spt/services/MailSendService";
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
import { ICloner } from "@spt/utils/cloners/ICloner";
import { HashUtil } from "@spt/utils/HashUtil";
import { TimeUtil } from "@spt/utils/TimeUtil";
@ -39,13 +40,14 @@ export declare class QuestHelper {
protected profileHelper: ProfileHelper;
protected paymentHelper: PaymentHelper;
protected localisationService: LocalisationService;
protected seasonalEventService: SeasonalEventService;
protected traderHelper: TraderHelper;
protected presetHelper: PresetHelper;
protected mailSendService: MailSendService;
protected configServer: ConfigServer;
protected cloner: ICloner;
protected questConfig: IQuestConfig;
constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, databaseService: DatabaseService, questConditionHelper: QuestConditionHelper, eventOutputHolder: EventOutputHolder, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, traderHelper: TraderHelper, presetHelper: PresetHelper, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, databaseService: DatabaseService, questConditionHelper: QuestConditionHelper, eventOutputHolder: EventOutputHolder, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, seasonalEventService: SeasonalEventService, traderHelper: TraderHelper, presetHelper: PresetHelper, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
/**
* Get status of a quest in player profile by its id
* @param pmcData Profile to search
@ -128,6 +130,12 @@ export declare class QuestHelper {
* @returns Quests accessible to player incuding newly unlocked quests now quest (startedQuestId) was started
*/
getNewlyAccessibleQuestsWhenStartingQuest(startedQuestId: string, sessionID: string): IQuest[];
/**
* Should a seasonal/event quest be shown to the player
* @param questId Quest to check
* @returns true = show to player
*/
showEventQuestToPlayer(questId: string): boolean;
/**
* Is the quest for the opposite side the player is on
* @param playerSide Player side (usec/bear)

View File

@ -462,6 +462,7 @@ export interface Slot {
}
export interface SlotProps {
filters: SlotFilter[];
MaxStackCount?: number;
}
export interface SlotFilter {
Shift?: number;
@ -479,7 +480,7 @@ export interface StackSlot {
_max_count: number;
_props: StackSlotProps;
_proto: string;
upd: any;
upd?: any;
}
export interface StackSlotProps {
filters: SlotFilter[];

View File

@ -93,6 +93,7 @@ export interface IUserDialogDetails {
Side: string;
Level: number;
MemberCategory: MemberCategory;
SelectedMemberCategory: MemberCategory;
}
export interface DialogueInfo {
attachmentsNew: number;

View File

@ -62,6 +62,8 @@ export interface IServerFeatures {
autoInstallModDependencies: boolean;
compressProfile: boolean;
chatbotFeatures: IChatbotFeatures;
/** Keyed to profile type e.g. "Standard" or "SPT Developer" */
createNewProfileTypesBlacklist: string[];
}
export interface IChatbotFeatures {
sptFriendEnabled: boolean;

View File

@ -74,7 +74,7 @@ export declare class ProfileCallbacks {
/**
* Handle client/profile/settings
*/
getProfileSettings(url: string, info: IGetProfileSettingsRequest, sessionId: string): IGetBodyResponseData<string>;
getProfileSettings(url: string, info: IGetProfileSettingsRequest, sessionId: string): IGetBodyResponseData<boolean>;
/**
* Handle client/game/profile/search
*/

View File

@ -122,5 +122,5 @@ export declare class ProfileController {
/**
* Handle client/profile/settings
*/
setChosenProfileIcon(sessionId: string, request: IGetProfileSettingsRequest): void;
setChosenProfileIcon(sessionId: string, request: IGetProfileSettingsRequest): boolean;
}

View File

@ -23,7 +23,6 @@ import { LocaleService } from "@spt/services/LocaleService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { MailSendService } from "@spt/services/MailSendService";
import { PlayerService } from "@spt/services/PlayerService";
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
import { ICloner } from "@spt/utils/cloners/ICloner";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
import { TimeUtil } from "@spt/utils/TimeUtil";
@ -42,12 +41,11 @@ export declare class QuestController {
protected questConditionHelper: QuestConditionHelper;
protected playerService: PlayerService;
protected localeService: LocaleService;
protected seasonalEventService: SeasonalEventService;
protected localisationService: LocalisationService;
protected configServer: ConfigServer;
protected cloner: ICloner;
protected questConfig: IQuestConfig;
constructor(logger: ILogger, timeUtil: TimeUtil, httpResponseUtil: HttpResponseUtil, eventOutputHolder: EventOutputHolder, databaseService: DatabaseService, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, mailSendService: MailSendService, profileHelper: ProfileHelper, traderHelper: TraderHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, localeService: LocaleService, seasonalEventService: SeasonalEventService, localisationService: LocalisationService, configServer: ConfigServer, cloner: ICloner);
constructor(logger: ILogger, timeUtil: TimeUtil, httpResponseUtil: HttpResponseUtil, eventOutputHolder: EventOutputHolder, databaseService: DatabaseService, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, mailSendService: MailSendService, profileHelper: ProfileHelper, traderHelper: TraderHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, localeService: LocaleService, localisationService: LocalisationService, configServer: ConfigServer, cloner: ICloner);
/**
* Handle client/quest/list
* Get all quests visible to player
@ -63,12 +61,6 @@ export declare class QuestController {
* @returns true if quest can be seen/accepted by player of defined level
*/
protected playerLevelFulfillsQuestRequirement(quest: IQuest, playerLevel: number): boolean;
/**
* Should a quest be shown to the player in trader quest screen
* @param questId Quest to check
* @returns true = show to player
*/
protected showEventQuestToPlayer(questId: string): boolean;
/**
* Handle QuestAccept event
* Handle the client accepting a quest and starting it

View File

@ -1,4 +1,4 @@
import { IChatCommand, ICommandoCommand } from "@spt/helpers/Dialogue/Commando/IChatCommand";
import { IChatCommand } from "@spt/helpers/Dialogue/Commando/IChatCommand";
import { IDialogueChatBot } from "@spt/helpers/Dialogue/IDialogueChatBot";
import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest";
import { IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
@ -7,13 +7,9 @@ import { MailSendService } from "@spt/services/MailSendService";
export declare abstract class AbstractDialogueChatBot implements IDialogueChatBot {
protected logger: ILogger;
protected mailSendService: MailSendService;
protected chatCommands: IChatCommand[] | ICommandoCommand[];
constructor(logger: ILogger, mailSendService: MailSendService, chatCommands: IChatCommand[] | ICommandoCommand[]);
/**
* @deprecated As of v3.7.6. Use registerChatCommand.
*/
registerCommandoCommand(chatCommand: IChatCommand | ICommandoCommand): void;
registerChatCommand(chatCommand: IChatCommand | ICommandoCommand): void;
protected chatCommands: IChatCommand[];
constructor(logger: ILogger, mailSendService: MailSendService, chatCommands: IChatCommand[]);
registerChatCommand(chatCommand: IChatCommand): void;
abstract getChatBot(): IUserDialogInfo;
protected abstract getUnrecognizedCommandMessage(): string;
handleMessage(sessionId: string, request: ISendMessageRequest): string;

View File

@ -1,9 +1,5 @@
import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest";
import { IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
/**
* @deprecated As of v3.7.6. Use IChatCommand. Will be removed in v3.9.0.
*/
export type ICommandoCommand = IChatCommand;
export interface IChatCommand {
getCommandPrefix(): string;
getCommandHelp(command: string): string;

View File

@ -22,6 +22,7 @@ import { DatabaseService } from "@spt/services/DatabaseService";
import { LocaleService } from "@spt/services/LocaleService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { MailSendService } from "@spt/services/MailSendService";
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
import { ICloner } from "@spt/utils/cloners/ICloner";
import { HashUtil } from "@spt/utils/HashUtil";
import { TimeUtil } from "@spt/utils/TimeUtil";
@ -39,13 +40,14 @@ export declare class QuestHelper {
protected profileHelper: ProfileHelper;
protected paymentHelper: PaymentHelper;
protected localisationService: LocalisationService;
protected seasonalEventService: SeasonalEventService;
protected traderHelper: TraderHelper;
protected presetHelper: PresetHelper;
protected mailSendService: MailSendService;
protected configServer: ConfigServer;
protected cloner: ICloner;
protected questConfig: IQuestConfig;
constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, databaseService: DatabaseService, questConditionHelper: QuestConditionHelper, eventOutputHolder: EventOutputHolder, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, traderHelper: TraderHelper, presetHelper: PresetHelper, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, databaseService: DatabaseService, questConditionHelper: QuestConditionHelper, eventOutputHolder: EventOutputHolder, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, seasonalEventService: SeasonalEventService, traderHelper: TraderHelper, presetHelper: PresetHelper, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
/**
* Get status of a quest in player profile by its id
* @param pmcData Profile to search
@ -128,6 +130,12 @@ export declare class QuestHelper {
* @returns Quests accessible to player incuding newly unlocked quests now quest (startedQuestId) was started
*/
getNewlyAccessibleQuestsWhenStartingQuest(startedQuestId: string, sessionID: string): IQuest[];
/**
* Should a seasonal/event quest be shown to the player
* @param questId Quest to check
* @returns true = show to player
*/
showEventQuestToPlayer(questId: string): boolean;
/**
* Is the quest for the opposite side the player is on
* @param playerSide Player side (usec/bear)

View File

@ -462,6 +462,7 @@ export interface Slot {
}
export interface SlotProps {
filters: SlotFilter[];
MaxStackCount?: number;
}
export interface SlotFilter {
Shift?: number;
@ -479,7 +480,7 @@ export interface StackSlot {
_max_count: number;
_props: StackSlotProps;
_proto: string;
upd: any;
upd?: any;
}
export interface StackSlotProps {
filters: SlotFilter[];

View File

@ -93,6 +93,7 @@ export interface IUserDialogDetails {
Side: string;
Level: number;
MemberCategory: MemberCategory;
SelectedMemberCategory: MemberCategory;
}
export interface DialogueInfo {
attachmentsNew: number;

View File

@ -62,6 +62,8 @@ export interface IServerFeatures {
autoInstallModDependencies: boolean;
compressProfile: boolean;
chatbotFeatures: IChatbotFeatures;
/** Keyed to profile type e.g. "Standard" or "SPT Developer" */
createNewProfileTypesBlacklist: string[];
}
export interface IChatbotFeatures {
sptFriendEnabled: boolean;

View File

@ -74,7 +74,7 @@ export declare class ProfileCallbacks {
/**
* Handle client/profile/settings
*/
getProfileSettings(url: string, info: IGetProfileSettingsRequest, sessionId: string): IGetBodyResponseData<string>;
getProfileSettings(url: string, info: IGetProfileSettingsRequest, sessionId: string): IGetBodyResponseData<boolean>;
/**
* Handle client/game/profile/search
*/

View File

@ -122,5 +122,5 @@ export declare class ProfileController {
/**
* Handle client/profile/settings
*/
setChosenProfileIcon(sessionId: string, request: IGetProfileSettingsRequest): void;
setChosenProfileIcon(sessionId: string, request: IGetProfileSettingsRequest): boolean;
}

View File

@ -23,7 +23,6 @@ import { LocaleService } from "@spt/services/LocaleService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { MailSendService } from "@spt/services/MailSendService";
import { PlayerService } from "@spt/services/PlayerService";
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
import { ICloner } from "@spt/utils/cloners/ICloner";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
import { TimeUtil } from "@spt/utils/TimeUtil";
@ -42,12 +41,11 @@ export declare class QuestController {
protected questConditionHelper: QuestConditionHelper;
protected playerService: PlayerService;
protected localeService: LocaleService;
protected seasonalEventService: SeasonalEventService;
protected localisationService: LocalisationService;
protected configServer: ConfigServer;
protected cloner: ICloner;
protected questConfig: IQuestConfig;
constructor(logger: ILogger, timeUtil: TimeUtil, httpResponseUtil: HttpResponseUtil, eventOutputHolder: EventOutputHolder, databaseService: DatabaseService, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, mailSendService: MailSendService, profileHelper: ProfileHelper, traderHelper: TraderHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, localeService: LocaleService, seasonalEventService: SeasonalEventService, localisationService: LocalisationService, configServer: ConfigServer, cloner: ICloner);
constructor(logger: ILogger, timeUtil: TimeUtil, httpResponseUtil: HttpResponseUtil, eventOutputHolder: EventOutputHolder, databaseService: DatabaseService, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, mailSendService: MailSendService, profileHelper: ProfileHelper, traderHelper: TraderHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, localeService: LocaleService, localisationService: LocalisationService, configServer: ConfigServer, cloner: ICloner);
/**
* Handle client/quest/list
* Get all quests visible to player
@ -63,12 +61,6 @@ export declare class QuestController {
* @returns true if quest can be seen/accepted by player of defined level
*/
protected playerLevelFulfillsQuestRequirement(quest: IQuest, playerLevel: number): boolean;
/**
* Should a quest be shown to the player in trader quest screen
* @param questId Quest to check
* @returns true = show to player
*/
protected showEventQuestToPlayer(questId: string): boolean;
/**
* Handle QuestAccept event
* Handle the client accepting a quest and starting it

View File

@ -1,4 +1,4 @@
import { IChatCommand, ICommandoCommand } from "@spt/helpers/Dialogue/Commando/IChatCommand";
import { IChatCommand } from "@spt/helpers/Dialogue/Commando/IChatCommand";
import { IDialogueChatBot } from "@spt/helpers/Dialogue/IDialogueChatBot";
import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest";
import { IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
@ -7,13 +7,9 @@ import { MailSendService } from "@spt/services/MailSendService";
export declare abstract class AbstractDialogueChatBot implements IDialogueChatBot {
protected logger: ILogger;
protected mailSendService: MailSendService;
protected chatCommands: IChatCommand[] | ICommandoCommand[];
constructor(logger: ILogger, mailSendService: MailSendService, chatCommands: IChatCommand[] | ICommandoCommand[]);
/**
* @deprecated As of v3.7.6. Use registerChatCommand.
*/
registerCommandoCommand(chatCommand: IChatCommand | ICommandoCommand): void;
registerChatCommand(chatCommand: IChatCommand | ICommandoCommand): void;
protected chatCommands: IChatCommand[];
constructor(logger: ILogger, mailSendService: MailSendService, chatCommands: IChatCommand[]);
registerChatCommand(chatCommand: IChatCommand): void;
abstract getChatBot(): IUserDialogInfo;
protected abstract getUnrecognizedCommandMessage(): string;
handleMessage(sessionId: string, request: ISendMessageRequest): string;

View File

@ -1,9 +1,5 @@
import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest";
import { IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
/**
* @deprecated As of v3.7.6. Use IChatCommand. Will be removed in v3.9.0.
*/
export type ICommandoCommand = IChatCommand;
export interface IChatCommand {
getCommandPrefix(): string;
getCommandHelp(command: string): string;

View File

@ -22,6 +22,7 @@ import { DatabaseService } from "@spt/services/DatabaseService";
import { LocaleService } from "@spt/services/LocaleService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { MailSendService } from "@spt/services/MailSendService";
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
import { ICloner } from "@spt/utils/cloners/ICloner";
import { HashUtil } from "@spt/utils/HashUtil";
import { TimeUtil } from "@spt/utils/TimeUtil";
@ -39,13 +40,14 @@ export declare class QuestHelper {
protected profileHelper: ProfileHelper;
protected paymentHelper: PaymentHelper;
protected localisationService: LocalisationService;
protected seasonalEventService: SeasonalEventService;
protected traderHelper: TraderHelper;
protected presetHelper: PresetHelper;
protected mailSendService: MailSendService;
protected configServer: ConfigServer;
protected cloner: ICloner;
protected questConfig: IQuestConfig;
constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, databaseService: DatabaseService, questConditionHelper: QuestConditionHelper, eventOutputHolder: EventOutputHolder, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, traderHelper: TraderHelper, presetHelper: PresetHelper, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, databaseService: DatabaseService, questConditionHelper: QuestConditionHelper, eventOutputHolder: EventOutputHolder, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, seasonalEventService: SeasonalEventService, traderHelper: TraderHelper, presetHelper: PresetHelper, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
/**
* Get status of a quest in player profile by its id
* @param pmcData Profile to search
@ -128,6 +130,12 @@ export declare class QuestHelper {
* @returns Quests accessible to player incuding newly unlocked quests now quest (startedQuestId) was started
*/
getNewlyAccessibleQuestsWhenStartingQuest(startedQuestId: string, sessionID: string): IQuest[];
/**
* Should a seasonal/event quest be shown to the player
* @param questId Quest to check
* @returns true = show to player
*/
showEventQuestToPlayer(questId: string): boolean;
/**
* Is the quest for the opposite side the player is on
* @param playerSide Player side (usec/bear)

View File

@ -462,6 +462,7 @@ export interface Slot {
}
export interface SlotProps {
filters: SlotFilter[];
MaxStackCount?: number;
}
export interface SlotFilter {
Shift?: number;
@ -479,7 +480,7 @@ export interface StackSlot {
_max_count: number;
_props: StackSlotProps;
_proto: string;
upd: any;
upd?: any;
}
export interface StackSlotProps {
filters: SlotFilter[];

View File

@ -93,6 +93,7 @@ export interface IUserDialogDetails {
Side: string;
Level: number;
MemberCategory: MemberCategory;
SelectedMemberCategory: MemberCategory;
}
export interface DialogueInfo {
attachmentsNew: number;

View File

@ -62,6 +62,8 @@ export interface IServerFeatures {
autoInstallModDependencies: boolean;
compressProfile: boolean;
chatbotFeatures: IChatbotFeatures;
/** Keyed to profile type e.g. "Standard" or "SPT Developer" */
createNewProfileTypesBlacklist: string[];
}
export interface IChatbotFeatures {
sptFriendEnabled: boolean;

View File

@ -74,7 +74,7 @@ export declare class ProfileCallbacks {
/**
* Handle client/profile/settings
*/
getProfileSettings(url: string, info: IGetProfileSettingsRequest, sessionId: string): IGetBodyResponseData<string>;
getProfileSettings(url: string, info: IGetProfileSettingsRequest, sessionId: string): IGetBodyResponseData<boolean>;
/**
* Handle client/game/profile/search
*/

View File

@ -122,5 +122,5 @@ export declare class ProfileController {
/**
* Handle client/profile/settings
*/
setChosenProfileIcon(sessionId: string, request: IGetProfileSettingsRequest): void;
setChosenProfileIcon(sessionId: string, request: IGetProfileSettingsRequest): boolean;
}

View File

@ -23,7 +23,6 @@ import { LocaleService } from "@spt/services/LocaleService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { MailSendService } from "@spt/services/MailSendService";
import { PlayerService } from "@spt/services/PlayerService";
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
import { ICloner } from "@spt/utils/cloners/ICloner";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
import { TimeUtil } from "@spt/utils/TimeUtil";
@ -42,12 +41,11 @@ export declare class QuestController {
protected questConditionHelper: QuestConditionHelper;
protected playerService: PlayerService;
protected localeService: LocaleService;
protected seasonalEventService: SeasonalEventService;
protected localisationService: LocalisationService;
protected configServer: ConfigServer;
protected cloner: ICloner;
protected questConfig: IQuestConfig;
constructor(logger: ILogger, timeUtil: TimeUtil, httpResponseUtil: HttpResponseUtil, eventOutputHolder: EventOutputHolder, databaseService: DatabaseService, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, mailSendService: MailSendService, profileHelper: ProfileHelper, traderHelper: TraderHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, localeService: LocaleService, seasonalEventService: SeasonalEventService, localisationService: LocalisationService, configServer: ConfigServer, cloner: ICloner);
constructor(logger: ILogger, timeUtil: TimeUtil, httpResponseUtil: HttpResponseUtil, eventOutputHolder: EventOutputHolder, databaseService: DatabaseService, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, mailSendService: MailSendService, profileHelper: ProfileHelper, traderHelper: TraderHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, localeService: LocaleService, localisationService: LocalisationService, configServer: ConfigServer, cloner: ICloner);
/**
* Handle client/quest/list
* Get all quests visible to player
@ -63,12 +61,6 @@ export declare class QuestController {
* @returns true if quest can be seen/accepted by player of defined level
*/
protected playerLevelFulfillsQuestRequirement(quest: IQuest, playerLevel: number): boolean;
/**
* Should a quest be shown to the player in trader quest screen
* @param questId Quest to check
* @returns true = show to player
*/
protected showEventQuestToPlayer(questId: string): boolean;
/**
* Handle QuestAccept event
* Handle the client accepting a quest and starting it

View File

@ -1,4 +1,4 @@
import { IChatCommand, ICommandoCommand } from "@spt/helpers/Dialogue/Commando/IChatCommand";
import { IChatCommand } from "@spt/helpers/Dialogue/Commando/IChatCommand";
import { IDialogueChatBot } from "@spt/helpers/Dialogue/IDialogueChatBot";
import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest";
import { IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
@ -7,13 +7,9 @@ import { MailSendService } from "@spt/services/MailSendService";
export declare abstract class AbstractDialogueChatBot implements IDialogueChatBot {
protected logger: ILogger;
protected mailSendService: MailSendService;
protected chatCommands: IChatCommand[] | ICommandoCommand[];
constructor(logger: ILogger, mailSendService: MailSendService, chatCommands: IChatCommand[] | ICommandoCommand[]);
/**
* @deprecated As of v3.7.6. Use registerChatCommand.
*/
registerCommandoCommand(chatCommand: IChatCommand | ICommandoCommand): void;
registerChatCommand(chatCommand: IChatCommand | ICommandoCommand): void;
protected chatCommands: IChatCommand[];
constructor(logger: ILogger, mailSendService: MailSendService, chatCommands: IChatCommand[]);
registerChatCommand(chatCommand: IChatCommand): void;
abstract getChatBot(): IUserDialogInfo;
protected abstract getUnrecognizedCommandMessage(): string;
handleMessage(sessionId: string, request: ISendMessageRequest): string;

View File

@ -1,9 +1,5 @@
import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest";
import { IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
/**
* @deprecated As of v3.7.6. Use IChatCommand. Will be removed in v3.9.0.
*/
export type ICommandoCommand = IChatCommand;
export interface IChatCommand {
getCommandPrefix(): string;
getCommandHelp(command: string): string;

View File

@ -22,6 +22,7 @@ import { DatabaseService } from "@spt/services/DatabaseService";
import { LocaleService } from "@spt/services/LocaleService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { MailSendService } from "@spt/services/MailSendService";
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
import { ICloner } from "@spt/utils/cloners/ICloner";
import { HashUtil } from "@spt/utils/HashUtil";
import { TimeUtil } from "@spt/utils/TimeUtil";
@ -39,13 +40,14 @@ export declare class QuestHelper {
protected profileHelper: ProfileHelper;
protected paymentHelper: PaymentHelper;
protected localisationService: LocalisationService;
protected seasonalEventService: SeasonalEventService;
protected traderHelper: TraderHelper;
protected presetHelper: PresetHelper;
protected mailSendService: MailSendService;
protected configServer: ConfigServer;
protected cloner: ICloner;
protected questConfig: IQuestConfig;
constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, databaseService: DatabaseService, questConditionHelper: QuestConditionHelper, eventOutputHolder: EventOutputHolder, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, traderHelper: TraderHelper, presetHelper: PresetHelper, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, databaseService: DatabaseService, questConditionHelper: QuestConditionHelper, eventOutputHolder: EventOutputHolder, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, seasonalEventService: SeasonalEventService, traderHelper: TraderHelper, presetHelper: PresetHelper, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
/**
* Get status of a quest in player profile by its id
* @param pmcData Profile to search
@ -128,6 +130,12 @@ export declare class QuestHelper {
* @returns Quests accessible to player incuding newly unlocked quests now quest (startedQuestId) was started
*/
getNewlyAccessibleQuestsWhenStartingQuest(startedQuestId: string, sessionID: string): IQuest[];
/**
* Should a seasonal/event quest be shown to the player
* @param questId Quest to check
* @returns true = show to player
*/
showEventQuestToPlayer(questId: string): boolean;
/**
* Is the quest for the opposite side the player is on
* @param playerSide Player side (usec/bear)

View File

@ -462,6 +462,7 @@ export interface Slot {
}
export interface SlotProps {
filters: SlotFilter[];
MaxStackCount?: number;
}
export interface SlotFilter {
Shift?: number;
@ -479,7 +480,7 @@ export interface StackSlot {
_max_count: number;
_props: StackSlotProps;
_proto: string;
upd: any;
upd?: any;
}
export interface StackSlotProps {
filters: SlotFilter[];

View File

@ -93,6 +93,7 @@ export interface IUserDialogDetails {
Side: string;
Level: number;
MemberCategory: MemberCategory;
SelectedMemberCategory: MemberCategory;
}
export interface DialogueInfo {
attachmentsNew: number;

View File

@ -62,6 +62,8 @@ export interface IServerFeatures {
autoInstallModDependencies: boolean;
compressProfile: boolean;
chatbotFeatures: IChatbotFeatures;
/** Keyed to profile type e.g. "Standard" or "SPT Developer" */
createNewProfileTypesBlacklist: string[];
}
export interface IChatbotFeatures {
sptFriendEnabled: boolean;

View File

@ -74,7 +74,7 @@ export declare class ProfileCallbacks {
/**
* Handle client/profile/settings
*/
getProfileSettings(url: string, info: IGetProfileSettingsRequest, sessionId: string): IGetBodyResponseData<string>;
getProfileSettings(url: string, info: IGetProfileSettingsRequest, sessionId: string): IGetBodyResponseData<boolean>;
/**
* Handle client/game/profile/search
*/

View File

@ -122,5 +122,5 @@ export declare class ProfileController {
/**
* Handle client/profile/settings
*/
setChosenProfileIcon(sessionId: string, request: IGetProfileSettingsRequest): void;
setChosenProfileIcon(sessionId: string, request: IGetProfileSettingsRequest): boolean;
}

View File

@ -23,7 +23,6 @@ import { LocaleService } from "@spt/services/LocaleService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { MailSendService } from "@spt/services/MailSendService";
import { PlayerService } from "@spt/services/PlayerService";
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
import { ICloner } from "@spt/utils/cloners/ICloner";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
import { TimeUtil } from "@spt/utils/TimeUtil";
@ -42,12 +41,11 @@ export declare class QuestController {
protected questConditionHelper: QuestConditionHelper;
protected playerService: PlayerService;
protected localeService: LocaleService;
protected seasonalEventService: SeasonalEventService;
protected localisationService: LocalisationService;
protected configServer: ConfigServer;
protected cloner: ICloner;
protected questConfig: IQuestConfig;
constructor(logger: ILogger, timeUtil: TimeUtil, httpResponseUtil: HttpResponseUtil, eventOutputHolder: EventOutputHolder, databaseService: DatabaseService, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, mailSendService: MailSendService, profileHelper: ProfileHelper, traderHelper: TraderHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, localeService: LocaleService, seasonalEventService: SeasonalEventService, localisationService: LocalisationService, configServer: ConfigServer, cloner: ICloner);
constructor(logger: ILogger, timeUtil: TimeUtil, httpResponseUtil: HttpResponseUtil, eventOutputHolder: EventOutputHolder, databaseService: DatabaseService, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, mailSendService: MailSendService, profileHelper: ProfileHelper, traderHelper: TraderHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, localeService: LocaleService, localisationService: LocalisationService, configServer: ConfigServer, cloner: ICloner);
/**
* Handle client/quest/list
* Get all quests visible to player
@ -63,12 +61,6 @@ export declare class QuestController {
* @returns true if quest can be seen/accepted by player of defined level
*/
protected playerLevelFulfillsQuestRequirement(quest: IQuest, playerLevel: number): boolean;
/**
* Should a quest be shown to the player in trader quest screen
* @param questId Quest to check
* @returns true = show to player
*/
protected showEventQuestToPlayer(questId: string): boolean;
/**
* Handle QuestAccept event
* Handle the client accepting a quest and starting it

View File

@ -1,4 +1,4 @@
import { IChatCommand, ICommandoCommand } from "@spt/helpers/Dialogue/Commando/IChatCommand";
import { IChatCommand } from "@spt/helpers/Dialogue/Commando/IChatCommand";
import { IDialogueChatBot } from "@spt/helpers/Dialogue/IDialogueChatBot";
import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest";
import { IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
@ -7,13 +7,9 @@ import { MailSendService } from "@spt/services/MailSendService";
export declare abstract class AbstractDialogueChatBot implements IDialogueChatBot {
protected logger: ILogger;
protected mailSendService: MailSendService;
protected chatCommands: IChatCommand[] | ICommandoCommand[];
constructor(logger: ILogger, mailSendService: MailSendService, chatCommands: IChatCommand[] | ICommandoCommand[]);
/**
* @deprecated As of v3.7.6. Use registerChatCommand.
*/
registerCommandoCommand(chatCommand: IChatCommand | ICommandoCommand): void;
registerChatCommand(chatCommand: IChatCommand | ICommandoCommand): void;
protected chatCommands: IChatCommand[];
constructor(logger: ILogger, mailSendService: MailSendService, chatCommands: IChatCommand[]);
registerChatCommand(chatCommand: IChatCommand): void;
abstract getChatBot(): IUserDialogInfo;
protected abstract getUnrecognizedCommandMessage(): string;
handleMessage(sessionId: string, request: ISendMessageRequest): string;

View File

@ -1,9 +1,5 @@
import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest";
import { IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
/**
* @deprecated As of v3.7.6. Use IChatCommand. Will be removed in v3.9.0.
*/
export type ICommandoCommand = IChatCommand;
export interface IChatCommand {
getCommandPrefix(): string;
getCommandHelp(command: string): string;

View File

@ -22,6 +22,7 @@ import { DatabaseService } from "@spt/services/DatabaseService";
import { LocaleService } from "@spt/services/LocaleService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { MailSendService } from "@spt/services/MailSendService";
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
import { ICloner } from "@spt/utils/cloners/ICloner";
import { HashUtil } from "@spt/utils/HashUtil";
import { TimeUtil } from "@spt/utils/TimeUtil";
@ -39,13 +40,14 @@ export declare class QuestHelper {
protected profileHelper: ProfileHelper;
protected paymentHelper: PaymentHelper;
protected localisationService: LocalisationService;
protected seasonalEventService: SeasonalEventService;
protected traderHelper: TraderHelper;
protected presetHelper: PresetHelper;
protected mailSendService: MailSendService;
protected configServer: ConfigServer;
protected cloner: ICloner;
protected questConfig: IQuestConfig;
constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, databaseService: DatabaseService, questConditionHelper: QuestConditionHelper, eventOutputHolder: EventOutputHolder, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, traderHelper: TraderHelper, presetHelper: PresetHelper, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, databaseService: DatabaseService, questConditionHelper: QuestConditionHelper, eventOutputHolder: EventOutputHolder, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, seasonalEventService: SeasonalEventService, traderHelper: TraderHelper, presetHelper: PresetHelper, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
/**
* Get status of a quest in player profile by its id
* @param pmcData Profile to search
@ -128,6 +130,12 @@ export declare class QuestHelper {
* @returns Quests accessible to player incuding newly unlocked quests now quest (startedQuestId) was started
*/
getNewlyAccessibleQuestsWhenStartingQuest(startedQuestId: string, sessionID: string): IQuest[];
/**
* Should a seasonal/event quest be shown to the player
* @param questId Quest to check
* @returns true = show to player
*/
showEventQuestToPlayer(questId: string): boolean;
/**
* Is the quest for the opposite side the player is on
* @param playerSide Player side (usec/bear)

View File

@ -462,6 +462,7 @@ export interface Slot {
}
export interface SlotProps {
filters: SlotFilter[];
MaxStackCount?: number;
}
export interface SlotFilter {
Shift?: number;
@ -479,7 +480,7 @@ export interface StackSlot {
_max_count: number;
_props: StackSlotProps;
_proto: string;
upd: any;
upd?: any;
}
export interface StackSlotProps {
filters: SlotFilter[];

View File

@ -93,6 +93,7 @@ export interface IUserDialogDetails {
Side: string;
Level: number;
MemberCategory: MemberCategory;
SelectedMemberCategory: MemberCategory;
}
export interface DialogueInfo {
attachmentsNew: number;

View File

@ -62,6 +62,8 @@ export interface IServerFeatures {
autoInstallModDependencies: boolean;
compressProfile: boolean;
chatbotFeatures: IChatbotFeatures;
/** Keyed to profile type e.g. "Standard" or "SPT Developer" */
createNewProfileTypesBlacklist: string[];
}
export interface IChatbotFeatures {
sptFriendEnabled: boolean;

View File

@ -74,7 +74,7 @@ export declare class ProfileCallbacks {
/**
* Handle client/profile/settings
*/
getProfileSettings(url: string, info: IGetProfileSettingsRequest, sessionId: string): IGetBodyResponseData<string>;
getProfileSettings(url: string, info: IGetProfileSettingsRequest, sessionId: string): IGetBodyResponseData<boolean>;
/**
* Handle client/game/profile/search
*/

View File

@ -122,5 +122,5 @@ export declare class ProfileController {
/**
* Handle client/profile/settings
*/
setChosenProfileIcon(sessionId: string, request: IGetProfileSettingsRequest): void;
setChosenProfileIcon(sessionId: string, request: IGetProfileSettingsRequest): boolean;
}

View File

@ -23,7 +23,6 @@ import { LocaleService } from "@spt/services/LocaleService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { MailSendService } from "@spt/services/MailSendService";
import { PlayerService } from "@spt/services/PlayerService";
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
import { ICloner } from "@spt/utils/cloners/ICloner";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
import { TimeUtil } from "@spt/utils/TimeUtil";
@ -42,12 +41,11 @@ export declare class QuestController {
protected questConditionHelper: QuestConditionHelper;
protected playerService: PlayerService;
protected localeService: LocaleService;
protected seasonalEventService: SeasonalEventService;
protected localisationService: LocalisationService;
protected configServer: ConfigServer;
protected cloner: ICloner;
protected questConfig: IQuestConfig;
constructor(logger: ILogger, timeUtil: TimeUtil, httpResponseUtil: HttpResponseUtil, eventOutputHolder: EventOutputHolder, databaseService: DatabaseService, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, mailSendService: MailSendService, profileHelper: ProfileHelper, traderHelper: TraderHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, localeService: LocaleService, seasonalEventService: SeasonalEventService, localisationService: LocalisationService, configServer: ConfigServer, cloner: ICloner);
constructor(logger: ILogger, timeUtil: TimeUtil, httpResponseUtil: HttpResponseUtil, eventOutputHolder: EventOutputHolder, databaseService: DatabaseService, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, mailSendService: MailSendService, profileHelper: ProfileHelper, traderHelper: TraderHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, localeService: LocaleService, localisationService: LocalisationService, configServer: ConfigServer, cloner: ICloner);
/**
* Handle client/quest/list
* Get all quests visible to player
@ -63,12 +61,6 @@ export declare class QuestController {
* @returns true if quest can be seen/accepted by player of defined level
*/
protected playerLevelFulfillsQuestRequirement(quest: IQuest, playerLevel: number): boolean;
/**
* Should a quest be shown to the player in trader quest screen
* @param questId Quest to check
* @returns true = show to player
*/
protected showEventQuestToPlayer(questId: string): boolean;
/**
* Handle QuestAccept event
* Handle the client accepting a quest and starting it

View File

@ -1,4 +1,4 @@
import { IChatCommand, ICommandoCommand } from "@spt/helpers/Dialogue/Commando/IChatCommand";
import { IChatCommand } from "@spt/helpers/Dialogue/Commando/IChatCommand";
import { IDialogueChatBot } from "@spt/helpers/Dialogue/IDialogueChatBot";
import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest";
import { IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
@ -7,13 +7,9 @@ import { MailSendService } from "@spt/services/MailSendService";
export declare abstract class AbstractDialogueChatBot implements IDialogueChatBot {
protected logger: ILogger;
protected mailSendService: MailSendService;
protected chatCommands: IChatCommand[] | ICommandoCommand[];
constructor(logger: ILogger, mailSendService: MailSendService, chatCommands: IChatCommand[] | ICommandoCommand[]);
/**
* @deprecated As of v3.7.6. Use registerChatCommand.
*/
registerCommandoCommand(chatCommand: IChatCommand | ICommandoCommand): void;
registerChatCommand(chatCommand: IChatCommand | ICommandoCommand): void;
protected chatCommands: IChatCommand[];
constructor(logger: ILogger, mailSendService: MailSendService, chatCommands: IChatCommand[]);
registerChatCommand(chatCommand: IChatCommand): void;
abstract getChatBot(): IUserDialogInfo;
protected abstract getUnrecognizedCommandMessage(): string;
handleMessage(sessionId: string, request: ISendMessageRequest): string;

View File

@ -1,9 +1,5 @@
import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest";
import { IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
/**
* @deprecated As of v3.7.6. Use IChatCommand. Will be removed in v3.9.0.
*/
export type ICommandoCommand = IChatCommand;
export interface IChatCommand {
getCommandPrefix(): string;
getCommandHelp(command: string): string;

View File

@ -22,6 +22,7 @@ import { DatabaseService } from "@spt/services/DatabaseService";
import { LocaleService } from "@spt/services/LocaleService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { MailSendService } from "@spt/services/MailSendService";
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
import { ICloner } from "@spt/utils/cloners/ICloner";
import { HashUtil } from "@spt/utils/HashUtil";
import { TimeUtil } from "@spt/utils/TimeUtil";
@ -39,13 +40,14 @@ export declare class QuestHelper {
protected profileHelper: ProfileHelper;
protected paymentHelper: PaymentHelper;
protected localisationService: LocalisationService;
protected seasonalEventService: SeasonalEventService;
protected traderHelper: TraderHelper;
protected presetHelper: PresetHelper;
protected mailSendService: MailSendService;
protected configServer: ConfigServer;
protected cloner: ICloner;
protected questConfig: IQuestConfig;
constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, databaseService: DatabaseService, questConditionHelper: QuestConditionHelper, eventOutputHolder: EventOutputHolder, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, traderHelper: TraderHelper, presetHelper: PresetHelper, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, databaseService: DatabaseService, questConditionHelper: QuestConditionHelper, eventOutputHolder: EventOutputHolder, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, seasonalEventService: SeasonalEventService, traderHelper: TraderHelper, presetHelper: PresetHelper, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
/**
* Get status of a quest in player profile by its id
* @param pmcData Profile to search
@ -128,6 +130,12 @@ export declare class QuestHelper {
* @returns Quests accessible to player incuding newly unlocked quests now quest (startedQuestId) was started
*/
getNewlyAccessibleQuestsWhenStartingQuest(startedQuestId: string, sessionID: string): IQuest[];
/**
* Should a seasonal/event quest be shown to the player
* @param questId Quest to check
* @returns true = show to player
*/
showEventQuestToPlayer(questId: string): boolean;
/**
* Is the quest for the opposite side the player is on
* @param playerSide Player side (usec/bear)

View File

@ -462,6 +462,7 @@ export interface Slot {
}
export interface SlotProps {
filters: SlotFilter[];
MaxStackCount?: number;
}
export interface SlotFilter {
Shift?: number;
@ -479,7 +480,7 @@ export interface StackSlot {
_max_count: number;
_props: StackSlotProps;
_proto: string;
upd: any;
upd?: any;
}
export interface StackSlotProps {
filters: SlotFilter[];

View File

@ -93,6 +93,7 @@ export interface IUserDialogDetails {
Side: string;
Level: number;
MemberCategory: MemberCategory;
SelectedMemberCategory: MemberCategory;
}
export interface DialogueInfo {
attachmentsNew: number;

View File

@ -62,6 +62,8 @@ export interface IServerFeatures {
autoInstallModDependencies: boolean;
compressProfile: boolean;
chatbotFeatures: IChatbotFeatures;
/** Keyed to profile type e.g. "Standard" or "SPT Developer" */
createNewProfileTypesBlacklist: string[];
}
export interface IChatbotFeatures {
sptFriendEnabled: boolean;

View File

@ -74,7 +74,7 @@ export declare class ProfileCallbacks {
/**
* Handle client/profile/settings
*/
getProfileSettings(url: string, info: IGetProfileSettingsRequest, sessionId: string): IGetBodyResponseData<string>;
getProfileSettings(url: string, info: IGetProfileSettingsRequest, sessionId: string): IGetBodyResponseData<boolean>;
/**
* Handle client/game/profile/search
*/

View File

@ -122,5 +122,5 @@ export declare class ProfileController {
/**
* Handle client/profile/settings
*/
setChosenProfileIcon(sessionId: string, request: IGetProfileSettingsRequest): void;
setChosenProfileIcon(sessionId: string, request: IGetProfileSettingsRequest): boolean;
}

View File

@ -23,7 +23,6 @@ import { LocaleService } from "@spt/services/LocaleService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { MailSendService } from "@spt/services/MailSendService";
import { PlayerService } from "@spt/services/PlayerService";
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
import { ICloner } from "@spt/utils/cloners/ICloner";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
import { TimeUtil } from "@spt/utils/TimeUtil";
@ -42,12 +41,11 @@ export declare class QuestController {
protected questConditionHelper: QuestConditionHelper;
protected playerService: PlayerService;
protected localeService: LocaleService;
protected seasonalEventService: SeasonalEventService;
protected localisationService: LocalisationService;
protected configServer: ConfigServer;
protected cloner: ICloner;
protected questConfig: IQuestConfig;
constructor(logger: ILogger, timeUtil: TimeUtil, httpResponseUtil: HttpResponseUtil, eventOutputHolder: EventOutputHolder, databaseService: DatabaseService, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, mailSendService: MailSendService, profileHelper: ProfileHelper, traderHelper: TraderHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, localeService: LocaleService, seasonalEventService: SeasonalEventService, localisationService: LocalisationService, configServer: ConfigServer, cloner: ICloner);
constructor(logger: ILogger, timeUtil: TimeUtil, httpResponseUtil: HttpResponseUtil, eventOutputHolder: EventOutputHolder, databaseService: DatabaseService, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, mailSendService: MailSendService, profileHelper: ProfileHelper, traderHelper: TraderHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, localeService: LocaleService, localisationService: LocalisationService, configServer: ConfigServer, cloner: ICloner);
/**
* Handle client/quest/list
* Get all quests visible to player
@ -63,12 +61,6 @@ export declare class QuestController {
* @returns true if quest can be seen/accepted by player of defined level
*/
protected playerLevelFulfillsQuestRequirement(quest: IQuest, playerLevel: number): boolean;
/**
* Should a quest be shown to the player in trader quest screen
* @param questId Quest to check
* @returns true = show to player
*/
protected showEventQuestToPlayer(questId: string): boolean;
/**
* Handle QuestAccept event
* Handle the client accepting a quest and starting it

View File

@ -1,4 +1,4 @@
import { IChatCommand, ICommandoCommand } from "@spt/helpers/Dialogue/Commando/IChatCommand";
import { IChatCommand } from "@spt/helpers/Dialogue/Commando/IChatCommand";
import { IDialogueChatBot } from "@spt/helpers/Dialogue/IDialogueChatBot";
import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest";
import { IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
@ -7,13 +7,9 @@ import { MailSendService } from "@spt/services/MailSendService";
export declare abstract class AbstractDialogueChatBot implements IDialogueChatBot {
protected logger: ILogger;
protected mailSendService: MailSendService;
protected chatCommands: IChatCommand[] | ICommandoCommand[];
constructor(logger: ILogger, mailSendService: MailSendService, chatCommands: IChatCommand[] | ICommandoCommand[]);
/**
* @deprecated As of v3.7.6. Use registerChatCommand.
*/
registerCommandoCommand(chatCommand: IChatCommand | ICommandoCommand): void;
registerChatCommand(chatCommand: IChatCommand | ICommandoCommand): void;
protected chatCommands: IChatCommand[];
constructor(logger: ILogger, mailSendService: MailSendService, chatCommands: IChatCommand[]);
registerChatCommand(chatCommand: IChatCommand): void;
abstract getChatBot(): IUserDialogInfo;
protected abstract getUnrecognizedCommandMessage(): string;
handleMessage(sessionId: string, request: ISendMessageRequest): string;

View File

@ -1,9 +1,5 @@
import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest";
import { IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
/**
* @deprecated As of v3.7.6. Use IChatCommand. Will be removed in v3.9.0.
*/
export type ICommandoCommand = IChatCommand;
export interface IChatCommand {
getCommandPrefix(): string;
getCommandHelp(command: string): string;

View File

@ -22,6 +22,7 @@ import { DatabaseService } from "@spt/services/DatabaseService";
import { LocaleService } from "@spt/services/LocaleService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { MailSendService } from "@spt/services/MailSendService";
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
import { ICloner } from "@spt/utils/cloners/ICloner";
import { HashUtil } from "@spt/utils/HashUtil";
import { TimeUtil } from "@spt/utils/TimeUtil";
@ -39,13 +40,14 @@ export declare class QuestHelper {
protected profileHelper: ProfileHelper;
protected paymentHelper: PaymentHelper;
protected localisationService: LocalisationService;
protected seasonalEventService: SeasonalEventService;
protected traderHelper: TraderHelper;
protected presetHelper: PresetHelper;
protected mailSendService: MailSendService;
protected configServer: ConfigServer;
protected cloner: ICloner;
protected questConfig: IQuestConfig;
constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, databaseService: DatabaseService, questConditionHelper: QuestConditionHelper, eventOutputHolder: EventOutputHolder, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, traderHelper: TraderHelper, presetHelper: PresetHelper, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, databaseService: DatabaseService, questConditionHelper: QuestConditionHelper, eventOutputHolder: EventOutputHolder, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, seasonalEventService: SeasonalEventService, traderHelper: TraderHelper, presetHelper: PresetHelper, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
/**
* Get status of a quest in player profile by its id
* @param pmcData Profile to search
@ -128,6 +130,12 @@ export declare class QuestHelper {
* @returns Quests accessible to player incuding newly unlocked quests now quest (startedQuestId) was started
*/
getNewlyAccessibleQuestsWhenStartingQuest(startedQuestId: string, sessionID: string): IQuest[];
/**
* Should a seasonal/event quest be shown to the player
* @param questId Quest to check
* @returns true = show to player
*/
showEventQuestToPlayer(questId: string): boolean;
/**
* Is the quest for the opposite side the player is on
* @param playerSide Player side (usec/bear)

View File

@ -462,6 +462,7 @@ export interface Slot {
}
export interface SlotProps {
filters: SlotFilter[];
MaxStackCount?: number;
}
export interface SlotFilter {
Shift?: number;
@ -479,7 +480,7 @@ export interface StackSlot {
_max_count: number;
_props: StackSlotProps;
_proto: string;
upd: any;
upd?: any;
}
export interface StackSlotProps {
filters: SlotFilter[];

View File

@ -93,6 +93,7 @@ export interface IUserDialogDetails {
Side: string;
Level: number;
MemberCategory: MemberCategory;
SelectedMemberCategory: MemberCategory;
}
export interface DialogueInfo {
attachmentsNew: number;

View File

@ -62,6 +62,8 @@ export interface IServerFeatures {
autoInstallModDependencies: boolean;
compressProfile: boolean;
chatbotFeatures: IChatbotFeatures;
/** Keyed to profile type e.g. "Standard" or "SPT Developer" */
createNewProfileTypesBlacklist: string[];
}
export interface IChatbotFeatures {
sptFriendEnabled: boolean;

View File

@ -74,7 +74,7 @@ export declare class ProfileCallbacks {
/**
* Handle client/profile/settings
*/
getProfileSettings(url: string, info: IGetProfileSettingsRequest, sessionId: string): IGetBodyResponseData<string>;
getProfileSettings(url: string, info: IGetProfileSettingsRequest, sessionId: string): IGetBodyResponseData<boolean>;
/**
* Handle client/game/profile/search
*/

View File

@ -122,5 +122,5 @@ export declare class ProfileController {
/**
* Handle client/profile/settings
*/
setChosenProfileIcon(sessionId: string, request: IGetProfileSettingsRequest): void;
setChosenProfileIcon(sessionId: string, request: IGetProfileSettingsRequest): boolean;
}

View File

@ -23,7 +23,6 @@ import { LocaleService } from "@spt/services/LocaleService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { MailSendService } from "@spt/services/MailSendService";
import { PlayerService } from "@spt/services/PlayerService";
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
import { ICloner } from "@spt/utils/cloners/ICloner";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
import { TimeUtil } from "@spt/utils/TimeUtil";
@ -42,12 +41,11 @@ export declare class QuestController {
protected questConditionHelper: QuestConditionHelper;
protected playerService: PlayerService;
protected localeService: LocaleService;
protected seasonalEventService: SeasonalEventService;
protected localisationService: LocalisationService;
protected configServer: ConfigServer;
protected cloner: ICloner;
protected questConfig: IQuestConfig;
constructor(logger: ILogger, timeUtil: TimeUtil, httpResponseUtil: HttpResponseUtil, eventOutputHolder: EventOutputHolder, databaseService: DatabaseService, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, mailSendService: MailSendService, profileHelper: ProfileHelper, traderHelper: TraderHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, localeService: LocaleService, seasonalEventService: SeasonalEventService, localisationService: LocalisationService, configServer: ConfigServer, cloner: ICloner);
constructor(logger: ILogger, timeUtil: TimeUtil, httpResponseUtil: HttpResponseUtil, eventOutputHolder: EventOutputHolder, databaseService: DatabaseService, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, mailSendService: MailSendService, profileHelper: ProfileHelper, traderHelper: TraderHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, localeService: LocaleService, localisationService: LocalisationService, configServer: ConfigServer, cloner: ICloner);
/**
* Handle client/quest/list
* Get all quests visible to player
@ -63,12 +61,6 @@ export declare class QuestController {
* @returns true if quest can be seen/accepted by player of defined level
*/
protected playerLevelFulfillsQuestRequirement(quest: IQuest, playerLevel: number): boolean;
/**
* Should a quest be shown to the player in trader quest screen
* @param questId Quest to check
* @returns true = show to player
*/
protected showEventQuestToPlayer(questId: string): boolean;
/**
* Handle QuestAccept event
* Handle the client accepting a quest and starting it

View File

@ -1,4 +1,4 @@
import { IChatCommand, ICommandoCommand } from "@spt/helpers/Dialogue/Commando/IChatCommand";
import { IChatCommand } from "@spt/helpers/Dialogue/Commando/IChatCommand";
import { IDialogueChatBot } from "@spt/helpers/Dialogue/IDialogueChatBot";
import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest";
import { IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
@ -7,13 +7,9 @@ import { MailSendService } from "@spt/services/MailSendService";
export declare abstract class AbstractDialogueChatBot implements IDialogueChatBot {
protected logger: ILogger;
protected mailSendService: MailSendService;
protected chatCommands: IChatCommand[] | ICommandoCommand[];
constructor(logger: ILogger, mailSendService: MailSendService, chatCommands: IChatCommand[] | ICommandoCommand[]);
/**
* @deprecated As of v3.7.6. Use registerChatCommand.
*/
registerCommandoCommand(chatCommand: IChatCommand | ICommandoCommand): void;
registerChatCommand(chatCommand: IChatCommand | ICommandoCommand): void;
protected chatCommands: IChatCommand[];
constructor(logger: ILogger, mailSendService: MailSendService, chatCommands: IChatCommand[]);
registerChatCommand(chatCommand: IChatCommand): void;
abstract getChatBot(): IUserDialogInfo;
protected abstract getUnrecognizedCommandMessage(): string;
handleMessage(sessionId: string, request: ISendMessageRequest): string;

View File

@ -1,9 +1,5 @@
import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest";
import { IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
/**
* @deprecated As of v3.7.6. Use IChatCommand. Will be removed in v3.9.0.
*/
export type ICommandoCommand = IChatCommand;
export interface IChatCommand {
getCommandPrefix(): string;
getCommandHelp(command: string): string;

View File

@ -22,6 +22,7 @@ import { DatabaseService } from "@spt/services/DatabaseService";
import { LocaleService } from "@spt/services/LocaleService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { MailSendService } from "@spt/services/MailSendService";
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
import { ICloner } from "@spt/utils/cloners/ICloner";
import { HashUtil } from "@spt/utils/HashUtil";
import { TimeUtil } from "@spt/utils/TimeUtil";
@ -39,13 +40,14 @@ export declare class QuestHelper {
protected profileHelper: ProfileHelper;
protected paymentHelper: PaymentHelper;
protected localisationService: LocalisationService;
protected seasonalEventService: SeasonalEventService;
protected traderHelper: TraderHelper;
protected presetHelper: PresetHelper;
protected mailSendService: MailSendService;
protected configServer: ConfigServer;
protected cloner: ICloner;
protected questConfig: IQuestConfig;
constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, databaseService: DatabaseService, questConditionHelper: QuestConditionHelper, eventOutputHolder: EventOutputHolder, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, traderHelper: TraderHelper, presetHelper: PresetHelper, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, databaseService: DatabaseService, questConditionHelper: QuestConditionHelper, eventOutputHolder: EventOutputHolder, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, seasonalEventService: SeasonalEventService, traderHelper: TraderHelper, presetHelper: PresetHelper, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
/**
* Get status of a quest in player profile by its id
* @param pmcData Profile to search
@ -128,6 +130,12 @@ export declare class QuestHelper {
* @returns Quests accessible to player incuding newly unlocked quests now quest (startedQuestId) was started
*/
getNewlyAccessibleQuestsWhenStartingQuest(startedQuestId: string, sessionID: string): IQuest[];
/**
* Should a seasonal/event quest be shown to the player
* @param questId Quest to check
* @returns true = show to player
*/
showEventQuestToPlayer(questId: string): boolean;
/**
* Is the quest for the opposite side the player is on
* @param playerSide Player side (usec/bear)

View File

@ -462,6 +462,7 @@ export interface Slot {
}
export interface SlotProps {
filters: SlotFilter[];
MaxStackCount?: number;
}
export interface SlotFilter {
Shift?: number;
@ -479,7 +480,7 @@ export interface StackSlot {
_max_count: number;
_props: StackSlotProps;
_proto: string;
upd: any;
upd?: any;
}
export interface StackSlotProps {
filters: SlotFilter[];

View File

@ -93,6 +93,7 @@ export interface IUserDialogDetails {
Side: string;
Level: number;
MemberCategory: MemberCategory;
SelectedMemberCategory: MemberCategory;
}
export interface DialogueInfo {
attachmentsNew: number;

View File

@ -62,6 +62,8 @@ export interface IServerFeatures {
autoInstallModDependencies: boolean;
compressProfile: boolean;
chatbotFeatures: IChatbotFeatures;
/** Keyed to profile type e.g. "Standard" or "SPT Developer" */
createNewProfileTypesBlacklist: string[];
}
export interface IChatbotFeatures {
sptFriendEnabled: boolean;

View File

@ -74,7 +74,7 @@ export declare class ProfileCallbacks {
/**
* Handle client/profile/settings
*/
getProfileSettings(url: string, info: IGetProfileSettingsRequest, sessionId: string): IGetBodyResponseData<string>;
getProfileSettings(url: string, info: IGetProfileSettingsRequest, sessionId: string): IGetBodyResponseData<boolean>;
/**
* Handle client/game/profile/search
*/

View File

@ -122,5 +122,5 @@ export declare class ProfileController {
/**
* Handle client/profile/settings
*/
setChosenProfileIcon(sessionId: string, request: IGetProfileSettingsRequest): void;
setChosenProfileIcon(sessionId: string, request: IGetProfileSettingsRequest): boolean;
}

View File

@ -23,7 +23,6 @@ import { LocaleService } from "@spt/services/LocaleService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { MailSendService } from "@spt/services/MailSendService";
import { PlayerService } from "@spt/services/PlayerService";
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
import { ICloner } from "@spt/utils/cloners/ICloner";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
import { TimeUtil } from "@spt/utils/TimeUtil";
@ -42,12 +41,11 @@ export declare class QuestController {
protected questConditionHelper: QuestConditionHelper;
protected playerService: PlayerService;
protected localeService: LocaleService;
protected seasonalEventService: SeasonalEventService;
protected localisationService: LocalisationService;
protected configServer: ConfigServer;
protected cloner: ICloner;
protected questConfig: IQuestConfig;
constructor(logger: ILogger, timeUtil: TimeUtil, httpResponseUtil: HttpResponseUtil, eventOutputHolder: EventOutputHolder, databaseService: DatabaseService, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, mailSendService: MailSendService, profileHelper: ProfileHelper, traderHelper: TraderHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, localeService: LocaleService, seasonalEventService: SeasonalEventService, localisationService: LocalisationService, configServer: ConfigServer, cloner: ICloner);
constructor(logger: ILogger, timeUtil: TimeUtil, httpResponseUtil: HttpResponseUtil, eventOutputHolder: EventOutputHolder, databaseService: DatabaseService, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, mailSendService: MailSendService, profileHelper: ProfileHelper, traderHelper: TraderHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, localeService: LocaleService, localisationService: LocalisationService, configServer: ConfigServer, cloner: ICloner);
/**
* Handle client/quest/list
* Get all quests visible to player
@ -63,12 +61,6 @@ export declare class QuestController {
* @returns true if quest can be seen/accepted by player of defined level
*/
protected playerLevelFulfillsQuestRequirement(quest: IQuest, playerLevel: number): boolean;
/**
* Should a quest be shown to the player in trader quest screen
* @param questId Quest to check
* @returns true = show to player
*/
protected showEventQuestToPlayer(questId: string): boolean;
/**
* Handle QuestAccept event
* Handle the client accepting a quest and starting it

View File

@ -1,4 +1,4 @@
import { IChatCommand, ICommandoCommand } from "@spt/helpers/Dialogue/Commando/IChatCommand";
import { IChatCommand } from "@spt/helpers/Dialogue/Commando/IChatCommand";
import { IDialogueChatBot } from "@spt/helpers/Dialogue/IDialogueChatBot";
import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest";
import { IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
@ -7,13 +7,9 @@ import { MailSendService } from "@spt/services/MailSendService";
export declare abstract class AbstractDialogueChatBot implements IDialogueChatBot {
protected logger: ILogger;
protected mailSendService: MailSendService;
protected chatCommands: IChatCommand[] | ICommandoCommand[];
constructor(logger: ILogger, mailSendService: MailSendService, chatCommands: IChatCommand[] | ICommandoCommand[]);
/**
* @deprecated As of v3.7.6. Use registerChatCommand.
*/
registerCommandoCommand(chatCommand: IChatCommand | ICommandoCommand): void;
registerChatCommand(chatCommand: IChatCommand | ICommandoCommand): void;
protected chatCommands: IChatCommand[];
constructor(logger: ILogger, mailSendService: MailSendService, chatCommands: IChatCommand[]);
registerChatCommand(chatCommand: IChatCommand): void;
abstract getChatBot(): IUserDialogInfo;
protected abstract getUnrecognizedCommandMessage(): string;
handleMessage(sessionId: string, request: ISendMessageRequest): string;

View File

@ -1,9 +1,5 @@
import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest";
import { IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
/**
* @deprecated As of v3.7.6. Use IChatCommand. Will be removed in v3.9.0.
*/
export type ICommandoCommand = IChatCommand;
export interface IChatCommand {
getCommandPrefix(): string;
getCommandHelp(command: string): string;

View File

@ -22,6 +22,7 @@ import { DatabaseService } from "@spt/services/DatabaseService";
import { LocaleService } from "@spt/services/LocaleService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { MailSendService } from "@spt/services/MailSendService";
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
import { ICloner } from "@spt/utils/cloners/ICloner";
import { HashUtil } from "@spt/utils/HashUtil";
import { TimeUtil } from "@spt/utils/TimeUtil";
@ -39,13 +40,14 @@ export declare class QuestHelper {
protected profileHelper: ProfileHelper;
protected paymentHelper: PaymentHelper;
protected localisationService: LocalisationService;
protected seasonalEventService: SeasonalEventService;
protected traderHelper: TraderHelper;
protected presetHelper: PresetHelper;
protected mailSendService: MailSendService;
protected configServer: ConfigServer;
protected cloner: ICloner;
protected questConfig: IQuestConfig;
constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, databaseService: DatabaseService, questConditionHelper: QuestConditionHelper, eventOutputHolder: EventOutputHolder, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, traderHelper: TraderHelper, presetHelper: PresetHelper, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, databaseService: DatabaseService, questConditionHelper: QuestConditionHelper, eventOutputHolder: EventOutputHolder, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, seasonalEventService: SeasonalEventService, traderHelper: TraderHelper, presetHelper: PresetHelper, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
/**
* Get status of a quest in player profile by its id
* @param pmcData Profile to search
@ -128,6 +130,12 @@ export declare class QuestHelper {
* @returns Quests accessible to player incuding newly unlocked quests now quest (startedQuestId) was started
*/
getNewlyAccessibleQuestsWhenStartingQuest(startedQuestId: string, sessionID: string): IQuest[];
/**
* Should a seasonal/event quest be shown to the player
* @param questId Quest to check
* @returns true = show to player
*/
showEventQuestToPlayer(questId: string): boolean;
/**
* Is the quest for the opposite side the player is on
* @param playerSide Player side (usec/bear)

View File

@ -462,6 +462,7 @@ export interface Slot {
}
export interface SlotProps {
filters: SlotFilter[];
MaxStackCount?: number;
}
export interface SlotFilter {
Shift?: number;
@ -479,7 +480,7 @@ export interface StackSlot {
_max_count: number;
_props: StackSlotProps;
_proto: string;
upd: any;
upd?: any;
}
export interface StackSlotProps {
filters: SlotFilter[];

View File

@ -93,6 +93,7 @@ export interface IUserDialogDetails {
Side: string;
Level: number;
MemberCategory: MemberCategory;
SelectedMemberCategory: MemberCategory;
}
export interface DialogueInfo {
attachmentsNew: number;

View File

@ -62,6 +62,8 @@ export interface IServerFeatures {
autoInstallModDependencies: boolean;
compressProfile: boolean;
chatbotFeatures: IChatbotFeatures;
/** Keyed to profile type e.g. "Standard" or "SPT Developer" */
createNewProfileTypesBlacklist: string[];
}
export interface IChatbotFeatures {
sptFriendEnabled: boolean;

View File

@ -74,7 +74,7 @@ export declare class ProfileCallbacks {
/**
* Handle client/profile/settings
*/
getProfileSettings(url: string, info: IGetProfileSettingsRequest, sessionId: string): IGetBodyResponseData<string>;
getProfileSettings(url: string, info: IGetProfileSettingsRequest, sessionId: string): IGetBodyResponseData<boolean>;
/**
* Handle client/game/profile/search
*/

View File

@ -122,5 +122,5 @@ export declare class ProfileController {
/**
* Handle client/profile/settings
*/
setChosenProfileIcon(sessionId: string, request: IGetProfileSettingsRequest): void;
setChosenProfileIcon(sessionId: string, request: IGetProfileSettingsRequest): boolean;
}

View File

@ -23,7 +23,6 @@ import { LocaleService } from "@spt/services/LocaleService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { MailSendService } from "@spt/services/MailSendService";
import { PlayerService } from "@spt/services/PlayerService";
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
import { ICloner } from "@spt/utils/cloners/ICloner";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
import { TimeUtil } from "@spt/utils/TimeUtil";
@ -42,12 +41,11 @@ export declare class QuestController {
protected questConditionHelper: QuestConditionHelper;
protected playerService: PlayerService;
protected localeService: LocaleService;
protected seasonalEventService: SeasonalEventService;
protected localisationService: LocalisationService;
protected configServer: ConfigServer;
protected cloner: ICloner;
protected questConfig: IQuestConfig;
constructor(logger: ILogger, timeUtil: TimeUtil, httpResponseUtil: HttpResponseUtil, eventOutputHolder: EventOutputHolder, databaseService: DatabaseService, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, mailSendService: MailSendService, profileHelper: ProfileHelper, traderHelper: TraderHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, localeService: LocaleService, seasonalEventService: SeasonalEventService, localisationService: LocalisationService, configServer: ConfigServer, cloner: ICloner);
constructor(logger: ILogger, timeUtil: TimeUtil, httpResponseUtil: HttpResponseUtil, eventOutputHolder: EventOutputHolder, databaseService: DatabaseService, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, mailSendService: MailSendService, profileHelper: ProfileHelper, traderHelper: TraderHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, localeService: LocaleService, localisationService: LocalisationService, configServer: ConfigServer, cloner: ICloner);
/**
* Handle client/quest/list
* Get all quests visible to player
@ -63,12 +61,6 @@ export declare class QuestController {
* @returns true if quest can be seen/accepted by player of defined level
*/
protected playerLevelFulfillsQuestRequirement(quest: IQuest, playerLevel: number): boolean;
/**
* Should a quest be shown to the player in trader quest screen
* @param questId Quest to check
* @returns true = show to player
*/
protected showEventQuestToPlayer(questId: string): boolean;
/**
* Handle QuestAccept event
* Handle the client accepting a quest and starting it

View File

@ -1,4 +1,4 @@
import { IChatCommand, ICommandoCommand } from "@spt/helpers/Dialogue/Commando/IChatCommand";
import { IChatCommand } from "@spt/helpers/Dialogue/Commando/IChatCommand";
import { IDialogueChatBot } from "@spt/helpers/Dialogue/IDialogueChatBot";
import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest";
import { IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
@ -7,13 +7,9 @@ import { MailSendService } from "@spt/services/MailSendService";
export declare abstract class AbstractDialogueChatBot implements IDialogueChatBot {
protected logger: ILogger;
protected mailSendService: MailSendService;
protected chatCommands: IChatCommand[] | ICommandoCommand[];
constructor(logger: ILogger, mailSendService: MailSendService, chatCommands: IChatCommand[] | ICommandoCommand[]);
/**
* @deprecated As of v3.7.6. Use registerChatCommand.
*/
registerCommandoCommand(chatCommand: IChatCommand | ICommandoCommand): void;
registerChatCommand(chatCommand: IChatCommand | ICommandoCommand): void;
protected chatCommands: IChatCommand[];
constructor(logger: ILogger, mailSendService: MailSendService, chatCommands: IChatCommand[]);
registerChatCommand(chatCommand: IChatCommand): void;
abstract getChatBot(): IUserDialogInfo;
protected abstract getUnrecognizedCommandMessage(): string;
handleMessage(sessionId: string, request: ISendMessageRequest): string;

View File

@ -1,9 +1,5 @@
import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest";
import { IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
/**
* @deprecated As of v3.7.6. Use IChatCommand. Will be removed in v3.9.0.
*/
export type ICommandoCommand = IChatCommand;
export interface IChatCommand {
getCommandPrefix(): string;
getCommandHelp(command: string): string;

View File

@ -22,6 +22,7 @@ import { DatabaseService } from "@spt/services/DatabaseService";
import { LocaleService } from "@spt/services/LocaleService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { MailSendService } from "@spt/services/MailSendService";
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
import { ICloner } from "@spt/utils/cloners/ICloner";
import { HashUtil } from "@spt/utils/HashUtil";
import { TimeUtil } from "@spt/utils/TimeUtil";
@ -39,13 +40,14 @@ export declare class QuestHelper {
protected profileHelper: ProfileHelper;
protected paymentHelper: PaymentHelper;
protected localisationService: LocalisationService;
protected seasonalEventService: SeasonalEventService;
protected traderHelper: TraderHelper;
protected presetHelper: PresetHelper;
protected mailSendService: MailSendService;
protected configServer: ConfigServer;
protected cloner: ICloner;
protected questConfig: IQuestConfig;
constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, databaseService: DatabaseService, questConditionHelper: QuestConditionHelper, eventOutputHolder: EventOutputHolder, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, traderHelper: TraderHelper, presetHelper: PresetHelper, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, databaseService: DatabaseService, questConditionHelper: QuestConditionHelper, eventOutputHolder: EventOutputHolder, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, seasonalEventService: SeasonalEventService, traderHelper: TraderHelper, presetHelper: PresetHelper, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
/**
* Get status of a quest in player profile by its id
* @param pmcData Profile to search
@ -128,6 +130,12 @@ export declare class QuestHelper {
* @returns Quests accessible to player incuding newly unlocked quests now quest (startedQuestId) was started
*/
getNewlyAccessibleQuestsWhenStartingQuest(startedQuestId: string, sessionID: string): IQuest[];
/**
* Should a seasonal/event quest be shown to the player
* @param questId Quest to check
* @returns true = show to player
*/
showEventQuestToPlayer(questId: string): boolean;
/**
* Is the quest for the opposite side the player is on
* @param playerSide Player side (usec/bear)

View File

@ -462,6 +462,7 @@ export interface Slot {
}
export interface SlotProps {
filters: SlotFilter[];
MaxStackCount?: number;
}
export interface SlotFilter {
Shift?: number;
@ -479,7 +480,7 @@ export interface StackSlot {
_max_count: number;
_props: StackSlotProps;
_proto: string;
upd: any;
upd?: any;
}
export interface StackSlotProps {
filters: SlotFilter[];

View File

@ -93,6 +93,7 @@ export interface IUserDialogDetails {
Side: string;
Level: number;
MemberCategory: MemberCategory;
SelectedMemberCategory: MemberCategory;
}
export interface DialogueInfo {
attachmentsNew: number;

View File

@ -62,6 +62,8 @@ export interface IServerFeatures {
autoInstallModDependencies: boolean;
compressProfile: boolean;
chatbotFeatures: IChatbotFeatures;
/** Keyed to profile type e.g. "Standard" or "SPT Developer" */
createNewProfileTypesBlacklist: string[];
}
export interface IChatbotFeatures {
sptFriendEnabled: boolean;

View File

@ -74,7 +74,7 @@ export declare class ProfileCallbacks {
/**
* Handle client/profile/settings
*/
getProfileSettings(url: string, info: IGetProfileSettingsRequest, sessionId: string): IGetBodyResponseData<string>;
getProfileSettings(url: string, info: IGetProfileSettingsRequest, sessionId: string): IGetBodyResponseData<boolean>;
/**
* Handle client/game/profile/search
*/

View File

@ -122,5 +122,5 @@ export declare class ProfileController {
/**
* Handle client/profile/settings
*/
setChosenProfileIcon(sessionId: string, request: IGetProfileSettingsRequest): void;
setChosenProfileIcon(sessionId: string, request: IGetProfileSettingsRequest): boolean;
}

View File

@ -23,7 +23,6 @@ import { LocaleService } from "@spt/services/LocaleService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { MailSendService } from "@spt/services/MailSendService";
import { PlayerService } from "@spt/services/PlayerService";
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
import { ICloner } from "@spt/utils/cloners/ICloner";
import { HttpResponseUtil } from "@spt/utils/HttpResponseUtil";
import { TimeUtil } from "@spt/utils/TimeUtil";
@ -42,12 +41,11 @@ export declare class QuestController {
protected questConditionHelper: QuestConditionHelper;
protected playerService: PlayerService;
protected localeService: LocaleService;
protected seasonalEventService: SeasonalEventService;
protected localisationService: LocalisationService;
protected configServer: ConfigServer;
protected cloner: ICloner;
protected questConfig: IQuestConfig;
constructor(logger: ILogger, timeUtil: TimeUtil, httpResponseUtil: HttpResponseUtil, eventOutputHolder: EventOutputHolder, databaseService: DatabaseService, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, mailSendService: MailSendService, profileHelper: ProfileHelper, traderHelper: TraderHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, localeService: LocaleService, seasonalEventService: SeasonalEventService, localisationService: LocalisationService, configServer: ConfigServer, cloner: ICloner);
constructor(logger: ILogger, timeUtil: TimeUtil, httpResponseUtil: HttpResponseUtil, eventOutputHolder: EventOutputHolder, databaseService: DatabaseService, itemHelper: ItemHelper, dialogueHelper: DialogueHelper, mailSendService: MailSendService, profileHelper: ProfileHelper, traderHelper: TraderHelper, questHelper: QuestHelper, questConditionHelper: QuestConditionHelper, playerService: PlayerService, localeService: LocaleService, localisationService: LocalisationService, configServer: ConfigServer, cloner: ICloner);
/**
* Handle client/quest/list
* Get all quests visible to player
@ -63,12 +61,6 @@ export declare class QuestController {
* @returns true if quest can be seen/accepted by player of defined level
*/
protected playerLevelFulfillsQuestRequirement(quest: IQuest, playerLevel: number): boolean;
/**
* Should a quest be shown to the player in trader quest screen
* @param questId Quest to check
* @returns true = show to player
*/
protected showEventQuestToPlayer(questId: string): boolean;
/**
* Handle QuestAccept event
* Handle the client accepting a quest and starting it

View File

@ -1,4 +1,4 @@
import { IChatCommand, ICommandoCommand } from "@spt/helpers/Dialogue/Commando/IChatCommand";
import { IChatCommand } from "@spt/helpers/Dialogue/Commando/IChatCommand";
import { IDialogueChatBot } from "@spt/helpers/Dialogue/IDialogueChatBot";
import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest";
import { IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
@ -7,13 +7,9 @@ import { MailSendService } from "@spt/services/MailSendService";
export declare abstract class AbstractDialogueChatBot implements IDialogueChatBot {
protected logger: ILogger;
protected mailSendService: MailSendService;
protected chatCommands: IChatCommand[] | ICommandoCommand[];
constructor(logger: ILogger, mailSendService: MailSendService, chatCommands: IChatCommand[] | ICommandoCommand[]);
/**
* @deprecated As of v3.7.6. Use registerChatCommand.
*/
registerCommandoCommand(chatCommand: IChatCommand | ICommandoCommand): void;
registerChatCommand(chatCommand: IChatCommand | ICommandoCommand): void;
protected chatCommands: IChatCommand[];
constructor(logger: ILogger, mailSendService: MailSendService, chatCommands: IChatCommand[]);
registerChatCommand(chatCommand: IChatCommand): void;
abstract getChatBot(): IUserDialogInfo;
protected abstract getUnrecognizedCommandMessage(): string;
handleMessage(sessionId: string, request: ISendMessageRequest): string;

View File

@ -1,9 +1,5 @@
import { ISendMessageRequest } from "@spt/models/eft/dialog/ISendMessageRequest";
import { IUserDialogInfo } from "@spt/models/eft/profile/ISptProfile";
/**
* @deprecated As of v3.7.6. Use IChatCommand. Will be removed in v3.9.0.
*/
export type ICommandoCommand = IChatCommand;
export interface IChatCommand {
getCommandPrefix(): string;
getCommandHelp(command: string): string;

View File

@ -22,6 +22,7 @@ import { DatabaseService } from "@spt/services/DatabaseService";
import { LocaleService } from "@spt/services/LocaleService";
import { LocalisationService } from "@spt/services/LocalisationService";
import { MailSendService } from "@spt/services/MailSendService";
import { SeasonalEventService } from "@spt/services/SeasonalEventService";
import { ICloner } from "@spt/utils/cloners/ICloner";
import { HashUtil } from "@spt/utils/HashUtil";
import { TimeUtil } from "@spt/utils/TimeUtil";
@ -39,13 +40,14 @@ export declare class QuestHelper {
protected profileHelper: ProfileHelper;
protected paymentHelper: PaymentHelper;
protected localisationService: LocalisationService;
protected seasonalEventService: SeasonalEventService;
protected traderHelper: TraderHelper;
protected presetHelper: PresetHelper;
protected mailSendService: MailSendService;
protected configServer: ConfigServer;
protected cloner: ICloner;
protected questConfig: IQuestConfig;
constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, databaseService: DatabaseService, questConditionHelper: QuestConditionHelper, eventOutputHolder: EventOutputHolder, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, traderHelper: TraderHelper, presetHelper: PresetHelper, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
constructor(logger: ILogger, timeUtil: TimeUtil, hashUtil: HashUtil, itemHelper: ItemHelper, databaseService: DatabaseService, questConditionHelper: QuestConditionHelper, eventOutputHolder: EventOutputHolder, localeService: LocaleService, ragfairServerHelper: RagfairServerHelper, dialogueHelper: DialogueHelper, profileHelper: ProfileHelper, paymentHelper: PaymentHelper, localisationService: LocalisationService, seasonalEventService: SeasonalEventService, traderHelper: TraderHelper, presetHelper: PresetHelper, mailSendService: MailSendService, configServer: ConfigServer, cloner: ICloner);
/**
* Get status of a quest in player profile by its id
* @param pmcData Profile to search
@ -128,6 +130,12 @@ export declare class QuestHelper {
* @returns Quests accessible to player incuding newly unlocked quests now quest (startedQuestId) was started
*/
getNewlyAccessibleQuestsWhenStartingQuest(startedQuestId: string, sessionID: string): IQuest[];
/**
* Should a seasonal/event quest be shown to the player
* @param questId Quest to check
* @returns true = show to player
*/
showEventQuestToPlayer(questId: string): boolean;
/**
* Is the quest for the opposite side the player is on
* @param playerSide Player side (usec/bear)

View File

@ -462,6 +462,7 @@ export interface Slot {
}
export interface SlotProps {
filters: SlotFilter[];
MaxStackCount?: number;
}
export interface SlotFilter {
Shift?: number;
@ -479,7 +480,7 @@ export interface StackSlot {
_max_count: number;
_props: StackSlotProps;
_proto: string;
upd: any;
upd?: any;
}
export interface StackSlotProps {
filters: SlotFilter[];

View File

@ -93,6 +93,7 @@ export interface IUserDialogDetails {
Side: string;
Level: number;
MemberCategory: MemberCategory;
SelectedMemberCategory: MemberCategory;
}
export interface DialogueInfo {
attachmentsNew: number;

View File

@ -62,6 +62,8 @@ export interface IServerFeatures {
autoInstallModDependencies: boolean;
compressProfile: boolean;
chatbotFeatures: IChatbotFeatures;
/** Keyed to profile type e.g. "Standard" or "SPT Developer" */
createNewProfileTypesBlacklist: string[];
}
export interface IChatbotFeatures {
sptFriendEnabled: boolean;

Some files were not shown because too many files have changed in this diff Show More