DayZ Scripts
v1.21.156300 ยท Jun 20, 2023
 
Loading...
Searching...
No Matches
ErrorHandlerModule.c
Go to the documentation of this file.
1//-----------------------------------------------------------------------------
2// Definition
3//-----------------------------------------------------------------------------
6{
8 proto native ErrorCategory GetCategory();
9
11 proto native void SetCategory(ErrorCategory category);
12
14 protected void OnErrorThrown(int errorCode, owned string additionalInfo = "")
15 {
16 #ifdef DEVELOPER
18 #endif
19 }
20
22 string GetClientMessage(int errorCode, string additionalInfo = "")
23 {
24 return GetSimpleMessage(errorCode, additionalInfo);
25 }
26
28 string GetLastClientMessage(int errorCode)
29 {
30 return GetSimpleMessage(errorCode);
31 }
32
34 string GetServerMessage(int errorCode, string additionalInfo = "")
35 {
36 return GetSimpleMessage(errorCode, additionalInfo);
37 }
38
40 string GetLastServerMessage(int errorCode)
41 {
42 return GetSimpleMessage(errorCode);
43 }
44
46 string GetSimpleMessage(int errorCode, string additionalInfo = "")
47 {
48 return string.Format("[%1]: %2", ErrorModuleHandler.GetErrorHex(errorCode), additionalInfo);
49 }
50
52 void OnEvent(EventType eventTypeId, Param params)
53 {
54 }
55}
56
57//-----------------------------------------------------------------------------
58// Script override
59//-----------------------------------------------------------------------------
64{
65 protected string m_Header = "";
66 protected string m_Prefix = "";
67 protected ref UIScriptedMenu m_UIHandler = null;
68
69 protected int m_LastErrorThrown = 0;
70 protected string m_LastAdditionalInfo = "";
71
79
82 {
85 }
86
88 {
89 if (m_UIHandler)
90 {
91 delete m_UIHandler;
92 }
93 }
94
97 {
98 }
99
102 {
104 InsertDialogueErrorProperties(-1, "#server_browser_error_unknown");
105 }
106
113 {
114 int error = ErrorModuleHandler.GetCodeFromError(errorCode);
115 ErrorProperties properties = null;
116
117 if (!m_ErrorDataMap.Find(error, properties))
118 {
119 Error(string.Format("[EHM] Could not find any properties for error %1(%2) in %3", errorCode, ErrorModuleHandler.GetErrorHex(errorCode), this));
120 }
121
122 return properties;
123 }
124
130 override string GetClientMessage(int errorCode, string additionalInfo = "")
131 {
132 ErrorProperties properties = GetProperties(errorCode);
133
134 if ( properties )
135 {
136 return properties.GetClientMessage(additionalInfo);
137 }
138 else
139 {
140 return additionalInfo;
141 }
142 }
143
149 override string GetLastClientMessage(int errorCode)
150 {
151 if (errorCode == m_LastErrorThrown)
152 {
153 return GetClientMessage(errorCode, m_LastAdditionalInfo);
154 }
155 else
156 {
157 ErrorEx(string.Format("Was unable to get the information on the last error as another has already occurred. (%1 != %2)", ErrorModuleHandler.GetErrorHex(errorCode), ErrorModuleHandler.GetErrorHex(m_LastErrorThrown)));
158 return GetClientMessage(errorCode);
159 }
160 }
161
167 override string GetServerMessage(int errorCode, string additionalInfo = "")
168 {
169 ErrorProperties properties = GetProperties(errorCode);
170
171 if ( properties )
172 {
173 return properties.GetServerMessage(additionalInfo);
174 }
175 else
176 {
177 return additionalInfo;
178 }
179 }
180
186 override string GetLastServerMessage(int errorCode)
187 {
188 if (errorCode == m_LastErrorThrown)
189 {
190 return GetServerMessage(errorCode, m_LastAdditionalInfo);
191 }
192 else
193 {
194 ErrorEx(string.Format("Was unable to get the information on the last error as another has already occurred. (%1 != %2)", ErrorModuleHandler.GetErrorHex(errorCode), ErrorModuleHandler.GetErrorHex(m_LastErrorThrown)), ErrorExSeverity.WARNING);
195 return GetServerMessage(errorCode);
196 }
197 }
198
206 protected override void OnErrorThrown(int errorCode, owned string additionalInfo = "")
207 {
208 super.OnErrorThrown(errorCode, additionalInfo);
209
210 m_LastErrorThrown = errorCode;
211 m_LastAdditionalInfo = additionalInfo;
212
213 ErrorProperties properties = GetProperties(errorCode);
214
215 if ( properties )
216 {
217 properties.HandleError(errorCode, additionalInfo);
218 }
219 else
220 {
221 ErrorEx(string.Format("Error code %1(%2) was thrown but no ErrorProperties was found for it in category %3.", errorCode, ErrorModuleHandler.GetErrorHex(errorCode), GetCategory().ToString()));
222 if (m_ErrorDataMap.Find(-1, properties))
223 {
224 properties.HandleError(errorCode, additionalInfo);
225 }
226 }
227 }
228
229 //-----------------------------------------------------------------------------
230 // Insert helpers
231 //-----------------------------------------------------------------------------
233 void InsertDialogueErrorProperties(int code, string message, int dialogButtonType = DBT_OK, int defaultButton = DBB_OK, int dialogMeaningType = DMT_EXCLAMATION, bool displayAdditionalInfo = true)
234 {
235 m_ErrorDataMap.Insert(code, DialogueErrorProperties(string.Format("%1%2", m_Prefix, message), message, m_Header, m_UIHandler, dialogButtonType, defaultButton, dialogMeaningType, displayAdditionalInfo));
236 }
237
239 void InsertHeaderDialogueErrorProperties(int code, string message, string header, int dialogButtonType = DBT_OK, int defaultButton = DBB_OK, int dialogMeaningType = DMT_EXCLAMATION, bool displayAdditionalInfo = true)
240 {
241 m_ErrorDataMap.Insert(code, DialogueErrorProperties(string.Format("%1%2", m_Prefix, message), message, header, m_UIHandler, dialogButtonType, defaultButton, dialogMeaningType, displayAdditionalInfo));
242 }
243
245 void InsertPrefixDialogueErrorProperties(int code, string message, string prefix, int dialogButtonType = DBT_OK, int defaultButton = DBB_OK, int dialogMeaningType = DMT_EXCLAMATION, bool displayAdditionalInfo = true)
246 {
247 m_ErrorDataMap.Insert(code, DialogueErrorProperties(string.Format("%1%2", prefix, message), message, m_Header, m_UIHandler, dialogButtonType, defaultButton, dialogMeaningType, displayAdditionalInfo));
248 }
249
251 void InsertExtendedPrefixDialogueErrorProperties(int code, string message, string prefix, int dialogButtonType = DBT_OK, int defaultButton = DBB_OK, int dialogMeaningType = DMT_EXCLAMATION, bool displayAdditionalInfo = true)
252 {
253 m_ErrorDataMap.Insert(code, DialogueErrorProperties(string.Format("%1%2%3", m_Prefix, prefix, message), message, m_Header, m_UIHandler, dialogButtonType, defaultButton, dialogMeaningType, displayAdditionalInfo));
254 }
255
257 void InsertExtendedPrefixSplitDialogueErrorProperties(int code, string message, string prefix, string serverMessage, int dialogButtonType = DBT_OK, int defaultButton = DBB_OK, int dialogMeaningType = DMT_EXCLAMATION, bool displayAdditionalInfo = true)
258 {
259 m_ErrorDataMap.Insert(code, DialogueErrorProperties(string.Format("%1%2%3", m_Prefix, prefix, message), serverMessage, m_Header, m_UIHandler, dialogButtonType, defaultButton, dialogMeaningType, displayAdditionalInfo));
260 }
261
263 void InsertSplitDialogueErrorProperties(int code, string message, string serverMessage, int dialogButtonType = DBT_OK, int defaultButton = DBB_OK, int dialogMeaningType = DMT_EXCLAMATION, bool displayAdditionalInfo = true)
264 {
265 m_ErrorDataMap.Insert(code, DialogueErrorProperties(string.Format("%1%2", m_Prefix, message), serverMessage, m_Header, m_UIHandler, dialogButtonType, defaultButton, dialogMeaningType, displayAdditionalInfo));
266 }
267
269 void InsertErrorProperties(int code, string message = "")
270 {
271 m_ErrorDataMap.Insert(code, ErrorProperties(message, message));
272 }
273}
proto string ToString()
void InsertExtendedPrefixDialogueErrorProperties(int code, string message, string prefix, int dialogButtonType=DBT_OK, int defaultButton=DBB_OK, int dialogMeaningType=DMT_EXCLAMATION, bool displayAdditionalInfo=true)
Insert an error with Dialogue as handling with extended prefix.
void InsertSplitDialogueErrorProperties(int code, string message, string serverMessage, int dialogButtonType=DBT_OK, int defaultButton=DBB_OK, int dialogMeaningType=DMT_EXCLAMATION, bool displayAdditionalInfo=true)
Insert an error with Dialogue as handling with separate server message.
void FillErrorDataMap()
Function to fill up m_ErrorDataMap, gets called in the Constructor.
void ~ErrorHandlerModuleScript()
class ErrorHandlerModule m_Header
This is where to input logic and extend functionality of ErrorHandlerModule.
void ErrorHandlerModuleScript()
Constructor, by default calls the function that will fill the ErrorDataMap.
void InsertExtendedPrefixSplitDialogueErrorProperties(int code, string message, string prefix, string serverMessage, int dialogButtonType=DBT_OK, int defaultButton=DBB_OK, int dialogMeaningType=DMT_EXCLAMATION, bool displayAdditionalInfo=true)
Insert an error with Dialogue as handling with extended prefix and separate server message.
protected string m_Prefix
Optional: Prefix (e.g. Fixed text at the start of the messages in the module)
ErrorProperties GetProperties(int errorCode)
Fetches the ErrorProperties for the error code.
protected string m_LastAdditionalInfo
Holds the last additional info passed in.
protected ref UIScriptedMenu m_UIHandler
Optional: The UI the handler might generally use
void InsertHeaderDialogueErrorProperties(int code, string message, string header, int dialogButtonType=DBT_OK, int defaultButton=DBB_OK, int dialogMeaningType=DMT_EXCLAMATION, bool displayAdditionalInfo=true)
Insert an error with Dialogue as handling with custom header.
void InitOptionalVariables()
Function which gets called before FillErrorDataMap, designed to set Optional Variales before ErrorPro...
protected ref map< int, ref ErrorProperties > m_ErrorDataMap
Map containing the codes that exist for the ErrorHandlerModule The code links to ErrorProperties This...
void InsertDialogueErrorProperties(int code, string message, int dialogButtonType=DBT_OK, int defaultButton=DBB_OK, int dialogMeaningType=DMT_EXCLAMATION, bool displayAdditionalInfo=true)
Insert an error with Dialogue as handling, using the Optional Variables.
void InsertPrefixDialogueErrorProperties(int code, string message, string prefix, int dialogButtonType=DBT_OK, int defaultButton=DBB_OK, int dialogMeaningType=DMT_EXCLAMATION, bool displayAdditionalInfo=true)
Insert an error with Dialogue as handling with custom prefix.
protected int m_LastErrorThrown
Holds the last thrown error in this module, defaults to 0.
void InsertErrorProperties(int code, string message="")
Insert an error with no handling.
ErrorCategory
ErrorCategory - To decide what ErrorHandlerModule needs to be called and easily identify where it cam...
void DialogueErrorProperties(string message, string serverMessage, string header, UIScriptedMenu handler=null, int dialogButtonType=DBT_OK, int defaultButton=DBB_OK, int dialogMeaningType=DMT_EXCLAMATION, bool displayAdditionalInfo=true)
GestureCategories GetCategory()
Definition and API of an ErrorHandlerModule - Do not insert any logic here! (as this class is not mod...
string GetClientMessage(int errorCode, string additionalInfo="")
Retrieve the message shown on Client.
string GetLastClientMessage(int errorCode)
Retrieve the message shown on Client.
protected void OnErrorThrown(int errorCode, owned string additionalInfo="")
Event that gets triggered when an error of the owned category is thrown.
proto native ErrorCategory GetCategory()
Returns the category the module handles.
proto native void SetCategory(ErrorCategory category)
Set the category the module handles.
string GetServerMessage(int errorCode, string additionalInfo="")
Retrieve the message shown on Server.
string GetSimpleMessage(int errorCode, string additionalInfo="")
Simple message of just code and info.
void OnEvent(EventType eventTypeId, Param params)
Event called by ErrorModuleHandler.
string GetLastServerMessage(int errorCode)
Retrieve the message shown on Server.
The error handler itself, for managing and distributing errors to modules Manages the ErrorHandlerMod...
static proto owned string GetErrorHex(int errorCode)
Returns a formatted string of the error code.
static proto int GetCodeFromError(int errorCode)
Returns the code of the error.
Class which holds the properties and handling of an error.
void HandleError(int errorCode, string additionalInfo="")
string GetClientMessage(string additionalInfo="")
string GetServerMessage(string additionalInfo="")
Base Param Class with no parameters. Used as general purpose parameter overloaded with Param1 to Para...
Definition param.c:12
ErrorExSeverity
Definition EnDebug.c:62
void Error(string err)
Messagebox with error message.
Definition EnDebug.c:90
proto void Print(void var)
Prints content of variable to console/log.
enum ShapeType ErrorEx
static proto string Format(string fmt, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL)
Gets n-th character from string.
TypeID EventType
Definition EnWidgets.c:54