diff --git a/.gitignore b/.gitignore index 1abf723..6047213 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,8 @@ - *.log *.bak - -\@AttendanceTracker/config.json +*.pbo +*.dll +config.json +**/AttendanceTracker_x64.h +**/AttendanceTracker.h +/extension/@AttendanceTracker/ diff --git a/@AttendanceTracker/AttendanceTracker_x64.dll b/@AttendanceTracker/AttendanceTracker_x64.dll deleted file mode 100644 index e897232..0000000 Binary files a/@AttendanceTracker/AttendanceTracker_x64.dll and /dev/null differ diff --git a/@AttendanceTracker/AttendanceTracker_x64.h b/@AttendanceTracker/AttendanceTracker_x64.h deleted file mode 100644 index 0282d20..0000000 --- a/@AttendanceTracker/AttendanceTracker_x64.h +++ /dev/null @@ -1,86 +0,0 @@ -/* Code generated by cmd/cgo; DO NOT EDIT. */ - -/* package main.go */ - - -#line 1 "cgo-builtin-export-prolog" - -#include /* for ptrdiff_t below */ - -#ifndef GO_CGO_EXPORT_PROLOGUE_H -#define GO_CGO_EXPORT_PROLOGUE_H - -#ifndef GO_CGO_GOSTRING_TYPEDEF -typedef struct { const char *p; ptrdiff_t n; } _GoString_; -#endif - -#endif - -/* Start of preamble from import "C" comments. */ - - -#line 3 "main.go" - -#include -#include -#include -#include "extensionCallback.h" - -#line 1 "cgo-generated-wrapper" - - -/* End of preamble from import "C" comments. */ - - -/* Start of boilerplate cgo prologue. */ -#line 1 "cgo-gcc-export-header-prolog" - -#ifndef GO_CGO_PROLOGUE_H -#define GO_CGO_PROLOGUE_H - -typedef signed char GoInt8; -typedef unsigned char GoUint8; -typedef short GoInt16; -typedef unsigned short GoUint16; -typedef int GoInt32; -typedef unsigned int GoUint32; -typedef long long GoInt64; -typedef unsigned long long GoUint64; -typedef GoInt64 GoInt; -typedef GoUint64 GoUint; -typedef __SIZE_TYPE__ GoUintptr; -typedef float GoFloat32; -typedef double GoFloat64; -typedef float _Complex GoComplex64; -typedef double _Complex GoComplex128; - -/* - static assertion to make sure the file is being used on architecture - at least with matching size of GoInt. -*/ -typedef char _check_for_64_bit_pointer_matching_GoInt[sizeof(void*)==64/8 ? 1:-1]; - -#ifndef GO_CGO_GOSTRING_TYPEDEF -typedef _GoString_ GoString; -#endif -typedef void *GoMap; -typedef void *GoChan; -typedef struct { void *t; void *v; } GoInterface; -typedef struct { void *data; GoInt len; GoInt cap; } GoSlice; - -#endif - -/* End of boilerplate cgo prologue. */ - -#ifdef __cplusplus -extern "C" { -#endif - -extern __declspec(dllexport) void goRVExtensionVersion(char* output, size_t outputsize); -extern __declspec(dllexport) void goRVExtensionArgs(char* output, size_t outputsize, char* input, char** argv, int argc); -extern __declspec(dllexport) void goRVExtension(char* output, size_t outputsize, char* input); -extern __declspec(dllexport) void goRVExtensionRegisterCallback(extensionCallback fnc); - -#ifdef __cplusplus -} -#endif diff --git a/@AttendanceTracker/addons/AttendanceTracker.pbo b/@AttendanceTracker/addons/AttendanceTracker.pbo deleted file mode 100644 index f7d4aad..0000000 Binary files a/@AttendanceTracker/addons/AttendanceTracker.pbo and /dev/null differ diff --git a/README.md b/README.md index 1429117..2562151 100644 --- a/README.md +++ b/README.md @@ -174,3 +174,39 @@ where c.disconnect_time ) > 0 ``` + +--- + +## Contributing + +Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. + +--- + +## Development + +### Prerequisites + +- [Go 1.16.4](https://golang.org/doc/install) +- [MinGW-w64](https://sourceforge.net/projects/mingw-w64/) (Windows only) +- [GCC](https://gcc.gnu.org/) (Linux only) + +### Building + +```bash +cd ./extension +$ENV:GOARCH = "amd64" +$ENV:CGO_ENABLED = 1 +go1.16.4 build -o ../@AttendanceTracker/AttendanceTracker_x64.dll -buildmode=c-shared . +``` + +To prepare the addon, you'll need some PBO manager utility to pack this folder: +[`@AttendanceTracker/addons/AttendanceTracker`](@AttendanceTracker/addons/AttendanceTracker) + +--- + +## Credits + +- [Go](https://golang.org/) +- [Go Arma 3 Extension Template](https://github.com/code34/armago_x64/tree/master) +- [GORM](https://gorm.io/) diff --git a/extension/@AttendanceTracker/config.example.json b/extension/@AttendanceTracker/config.example.json deleted file mode 100644 index 7487850..0000000 --- a/extension/@AttendanceTracker/config.example.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "mysqlHost": "127.0.0.1", - "mysqlPort": 3306, - "mysqlUser": "root", - "mysqlPassword": "root", - "mysqlDatabase": "arma3_attendance" -} \ No newline at end of file diff --git a/extension/@AttendanceTracker/config.json b/extension/@AttendanceTracker/config.json deleted file mode 100644 index 4a54916..0000000 --- a/extension/@AttendanceTracker/config.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "mysqlHost": "127.0.0.1", - "mysqlPort": 3306, - "mysqlUser": "root", - "mysqlPassword": "root", - "mysqlDatabase": "testgorm" -} \ No newline at end of file diff --git a/extension/AttendanceTracker_x64.dll b/extension/AttendanceTracker_x64.dll deleted file mode 100644 index cd29838..0000000 Binary files a/extension/AttendanceTracker_x64.dll and /dev/null differ diff --git a/extension/AttendanceTracker_x64.h b/extension/AttendanceTracker_x64.h deleted file mode 100644 index 0282d20..0000000 --- a/extension/AttendanceTracker_x64.h +++ /dev/null @@ -1,86 +0,0 @@ -/* Code generated by cmd/cgo; DO NOT EDIT. */ - -/* package main.go */ - - -#line 1 "cgo-builtin-export-prolog" - -#include /* for ptrdiff_t below */ - -#ifndef GO_CGO_EXPORT_PROLOGUE_H -#define GO_CGO_EXPORT_PROLOGUE_H - -#ifndef GO_CGO_GOSTRING_TYPEDEF -typedef struct { const char *p; ptrdiff_t n; } _GoString_; -#endif - -#endif - -/* Start of preamble from import "C" comments. */ - - -#line 3 "main.go" - -#include -#include -#include -#include "extensionCallback.h" - -#line 1 "cgo-generated-wrapper" - - -/* End of preamble from import "C" comments. */ - - -/* Start of boilerplate cgo prologue. */ -#line 1 "cgo-gcc-export-header-prolog" - -#ifndef GO_CGO_PROLOGUE_H -#define GO_CGO_PROLOGUE_H - -typedef signed char GoInt8; -typedef unsigned char GoUint8; -typedef short GoInt16; -typedef unsigned short GoUint16; -typedef int GoInt32; -typedef unsigned int GoUint32; -typedef long long GoInt64; -typedef unsigned long long GoUint64; -typedef GoInt64 GoInt; -typedef GoUint64 GoUint; -typedef __SIZE_TYPE__ GoUintptr; -typedef float GoFloat32; -typedef double GoFloat64; -typedef float _Complex GoComplex64; -typedef double _Complex GoComplex128; - -/* - static assertion to make sure the file is being used on architecture - at least with matching size of GoInt. -*/ -typedef char _check_for_64_bit_pointer_matching_GoInt[sizeof(void*)==64/8 ? 1:-1]; - -#ifndef GO_CGO_GOSTRING_TYPEDEF -typedef _GoString_ GoString; -#endif -typedef void *GoMap; -typedef void *GoChan; -typedef struct { void *t; void *v; } GoInterface; -typedef struct { void *data; GoInt len; GoInt cap; } GoSlice; - -#endif - -/* End of boilerplate cgo prologue. */ - -#ifdef __cplusplus -extern "C" { -#endif - -extern __declspec(dllexport) void goRVExtensionVersion(char* output, size_t outputsize); -extern __declspec(dllexport) void goRVExtensionArgs(char* output, size_t outputsize, char* input, char** argv, int argc); -extern __declspec(dllexport) void goRVExtension(char* output, size_t outputsize, char* input); -extern __declspec(dllexport) void goRVExtensionRegisterCallback(extensionCallback fnc); - -#ifdef __cplusplus -} -#endif