11using System . Text . Json ;
2+ using SwiftlyS2 . API . Extensions ;
23using SwiftlyS2 . Internal_API ;
34
45namespace SwiftlyS2 . API . Scripting
@@ -18,11 +19,11 @@ private static void InitializeContext()
1819 Action < string ? , Dictionary < string , object > [ ] > ? callback ;
1920 if ( ! _callbacks . TryGetValue ( reqID , out callback ) ) return EventResult . Continue ;
2021 if ( callback == null ) return EventResult . Continue ;
21-
22+
2223 ulong id = Generic . RegisterCallstack ( Generic . GetCurrentPluginName ( ) , "DatabaseCallback" ) ;
2324 callback ( error , JsonSerializer . Deserialize < Dictionary < string , object > [ ] > ( output ) ?? [ ] ) ;
2425 Generic . UnregisterCallstack ( Generic . GetCurrentPluginName ( ) , id ) ;
25-
26+
2627 return EventResult . Stop ;
2728 } ) ;
2829 }
@@ -35,15 +36,19 @@ public DB(string connection_name): base(Internal_API.Invoker.CallNative<IntPtr>(
3536 }
3637 public bool IsConnected ( )
3738 {
38- return Internal_API . Invoker . CallNative < bool > ( "Database" , "IsConnected" , Internal_API . CallKind . CoreClassFunction , m_classData ) ;
39+ return Internal_API . Invoker . CallNative < bool > ( "DB" , "IsConnected" , Internal_API . CallKind . CoreClassFunction , m_classData ) ;
40+ }
41+ public string GetVersion ( )
42+ {
43+ return Internal_API . Invoker . CallNative < string > ( "DB" , "GetVersion" , Internal_API . CallKind . CoreClassFunction , m_classData ) ;
3944 }
40- public QueryBuilder QueryBuilder ( )
45+ public QueryBuilderMySQL QueryBuilder ( )
4146 {
42- return Internal_API . Invoker . CallNative < QueryBuilder > ( "Database" , "QueryBuilder" , Internal_API . CallKind . CoreClassFunction , m_classData ) ;
47+ return new ( this ) ;
4348 }
4449 public string EscapeString ( string value )
4550 {
46- return Internal_API . Invoker . CallNative < string > ( "Database " , "EscapeString" , Internal_API . CallKind . CoreClassFunction , m_classData , value ) ?? "" ;
51+ return Internal_API . Invoker . CallNative < string > ( "DB " , "EscapeString" , Internal_API . CallKind . CoreClassFunction , m_classData , value ) ?? "" ;
4752 }
4853 public void Query ( string query , Action < string ? , Dictionary < string , object > [ ] > callback )
4954 {
@@ -54,7 +59,7 @@ public void Query(string query, Action<string?, Dictionary<string, object>[]> ca
5459 }
5560
5661 _callbacks . Add ( callbackUUID , callback ) ;
57- Internal_API . Invoker . CallNative ( "Database " , "Query" , Internal_API . CallKind . CoreClassFunction , m_classData , query , callbackUUID ) ;
62+ Internal_API . Invoker . CallNative ( "DB " , "Query" , Internal_API . CallKind . CoreClassFunction , m_classData , query , callbackUUID ) ;
5863 }
5964 public void QueryParams ( string query , Dictionary < string , object > param , Action < string ? , Dictionary < string , object > [ ] > callback )
6065 {
@@ -75,92 +80,5 @@ public void QueryParams(string query, Dictionary<string, object> param, Action<s
7580 Query ( query , callback ) ;
7681 }
7782 }
78-
79- public class QueryBuilder : ClassData
80- {
81- public QueryBuilder ( ) : base ( Internal_API . Invoker . CallNative < IntPtr > ( "QueryBuilder" , "QueryBuilder" , CallKind . ClassFunction ) )
82- {
83- }
84- public QueryBuilder Table ( string table_name )
85- {
86- return Internal_API . Invoker . CallNative < QueryBuilder > ( "QueryBuilder" , "Table" , Internal_API . CallKind . ClassFunction , m_classData , table_name ) ;
87- }
88- public QueryBuilder Select ( string [ ] columns )
89- {
90- return Internal_API . Invoker . CallNative < QueryBuilder > ( "QueryBuilder" , "Select" , Internal_API . CallKind . ClassFunction , m_classData , ( object ) columns ) ;
91- }
92- public QueryBuilder Insert ( Dictionary < string , object > values )
93- {
94- return Internal_API . Invoker . CallNative < QueryBuilder > ( "QueryBuilder" , "Insert" , Internal_API . CallKind . ClassFunction , m_classData , values ) ;
95- }
96- public QueryBuilder Update ( Dictionary < string , object > values )
97- {
98- return Internal_API . Invoker . CallNative < QueryBuilder > ( "QueryBuilder" , "Update" , Internal_API . CallKind . ClassFunction , m_classData , values ) ;
99- }
100- public QueryBuilder Delete ( )
101- {
102- return Internal_API . Invoker . CallNative < QueryBuilder > ( "QueryBuilder" , "Delete" , Internal_API . CallKind . ClassFunction , m_classData ) ;
103- }
104- public QueryBuilder Where ( string column , string oper , object value )
105- {
106- return Internal_API . Invoker . CallNative < QueryBuilder > ( "QueryBuilder" , "Where" , Internal_API . CallKind . ClassFunction , m_classData , column , oper , value ) ;
107- }
108- public QueryBuilder OrWhere ( string column , string oper , object value )
109- {
110- return Internal_API . Invoker . CallNative < QueryBuilder > ( "QueryBuilder" , "OrWhere" , Internal_API . CallKind . ClassFunction , m_classData , column , oper , value ) ;
111- }
112- public QueryBuilder Join ( string table_name , string condition , string join_type )
113- {
114- return Internal_API . Invoker . CallNative < QueryBuilder > ( "QueryBuilder" , "Join" , Internal_API . CallKind . ClassFunction , m_classData , table_name , condition , join_type ) ;
115- }
116- public QueryBuilder OrderBy ( Dictionary < string , string > columns )
117- {
118- return Internal_API . Invoker . CallNative < QueryBuilder > ( "QueryBuilder" , "OrderBy" , Internal_API . CallKind . ClassFunction , m_classData , columns ) ;
119- }
120- public QueryBuilder Limit ( int count )
121- {
122- return Internal_API . Invoker . CallNative < QueryBuilder > ( "QueryBuilder" , "Limit" , Internal_API . CallKind . ClassFunction , m_classData , count ) ;
123- }
124- public QueryBuilder GroupBy ( string [ ] columns )
125- {
126- return Internal_API . Invoker . CallNative < QueryBuilder > ( "QueryBuilder" , "GroupBy" , Internal_API . CallKind . ClassFunction , m_classData , ( object ) columns ) ;
127- }
128- public QueryBuilder Create ( Dictionary < string , string > values )
129- {
130- return Internal_API . Invoker . CallNative < QueryBuilder > ( "QueryBuilder" , "Create" , Internal_API . CallKind . ClassFunction , m_classData , values ) ;
131- }
132- public QueryBuilder Alter ( Dictionary < string , string > add_columns , Dictionary < string , string > remove_columns , Dictionary < string , string > modify_columns )
133- {
134- return Internal_API . Invoker . CallNative < QueryBuilder > ( "QueryBuilder" , "Alter" , Internal_API . CallKind . ClassFunction , m_classData , add_columns , remove_columns , modify_columns ) ;
135- }
136- public QueryBuilder Drop ( )
137- {
138- return Internal_API . Invoker . CallNative < QueryBuilder > ( "QueryBuilder" , "Drop" , Internal_API . CallKind . ClassFunction , m_classData ) ;
139- }
140- public QueryBuilder OnDuplicate ( Dictionary < string , object > update_value )
141- {
142- return Internal_API . Invoker . CallNative < QueryBuilder > ( "QueryBuilder" , "OnDuplicate" , Internal_API . CallKind . ClassFunction , m_classData , update_value ) ;
143- }
144- public QueryBuilder Having ( string condition )
145- {
146- return Internal_API . Invoker . CallNative < QueryBuilder > ( "QueryBuilder" , "Having" , Internal_API . CallKind . ClassFunction , m_classData , condition ) ;
147- }
148- public QueryBuilder Distinct ( )
149- {
150- return Internal_API . Invoker . CallNative < QueryBuilder > ( "QueryBuilder" , "Distinct" , Internal_API . CallKind . ClassFunction , m_classData ) ;
151- }
152- public QueryBuilder Offset ( int offset )
153- {
154- return Internal_API . Invoker . CallNative < QueryBuilder > ( "QueryBuilder" , "Offset" , Internal_API . CallKind . ClassFunction , m_classData , offset ) ;
155- }
156- public QueryBuilder Union ( string query , bool all )
157- {
158- return Internal_API . Invoker . CallNative < QueryBuilder > ( "QueryBuilder" , "Union" , Internal_API . CallKind . ClassFunction , m_classData , query , all ) ;
159- }
160- public void Execute ( Action < string , object [ ] > callback )
161- {
162- Internal_API . Invoker . CallNative ( "QueryBuilder" , "Execute" , Internal_API . CallKind . ClassFunction , m_classData , callback ) ;
163- }
164- }
16583 }
16684}
0 commit comments