Push Files
- Uploaded Backend - Uploaded Mod Code - Started Documentation
This commit is contained in:
parent
6c33c0b76a
commit
b06a49e54d
|
@ -0,0 +1,14 @@
|
||||||
|
{
|
||||||
|
"name": "gp-server",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"description": "",
|
||||||
|
"main": "server.js",
|
||||||
|
"scripts": {
|
||||||
|
"test": "echo \"Error: no test specified\" && exit 1",
|
||||||
|
"start": "node server.js"
|
||||||
|
},
|
||||||
|
"keywords": [],
|
||||||
|
"author": "",
|
||||||
|
"license": "ISC",
|
||||||
|
"type": "module"
|
||||||
|
}
|
|
@ -0,0 +1,39 @@
|
||||||
|
import express from "express";
|
||||||
|
import client from "prom-client";
|
||||||
|
|
||||||
|
const registry = new client.Registry();
|
||||||
|
|
||||||
|
const app = express();
|
||||||
|
|
||||||
|
var active_users = 0;
|
||||||
|
|
||||||
|
const users = new client.Gauge({
|
||||||
|
name: "active_users",
|
||||||
|
help: "active_users",
|
||||||
|
async collect() {
|
||||||
|
this.set(active_users);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
registry.registerMetric(users);
|
||||||
|
|
||||||
|
app.get("/", (req, res) => {
|
||||||
|
res.send("player-metrics");
|
||||||
|
});
|
||||||
|
|
||||||
|
app.post("/api/players", (req, res) => {
|
||||||
|
res.send("ok");
|
||||||
|
active_users++;
|
||||||
|
});
|
||||||
|
|
||||||
|
app.get("/metrics", async (req, res) => {
|
||||||
|
res.setHeader("Content-Type", client.contentType);
|
||||||
|
res.send(await registry.metrics());
|
||||||
|
res.end();
|
||||||
|
|
||||||
|
active_users = 0; // reset the active_users when prometheus gets metrics (aka reset every minute -- prometheus default poll time)
|
||||||
|
});
|
||||||
|
|
||||||
|
app.listen(5008, () => {
|
||||||
|
console.log("listening on :" + 5008);
|
||||||
|
});
|
|
@ -0,0 +1 @@
|
||||||
|
node server.js
|
|
@ -0,0 +1,25 @@
|
||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 17
|
||||||
|
VisualStudioVersion = 17.5.002.0
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Grafana", "Grafana.csproj", "{5208D570-5F22-4111-B506-06A0C0A6AE5E}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{5208D570-5F22-4111-B506-06A0C0A6AE5E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{5208D570-5F22-4111-B506-06A0C0A6AE5E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{5208D570-5F22-4111-B506-06A0C0A6AE5E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{5208D570-5F22-4111-B506-06A0C0A6AE5E}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {2517CDD3-F948-4559-935E-E2D8E3387E02}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
|
@ -0,0 +1,35 @@
|
||||||
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>netstandard2.1</TargetFramework>
|
||||||
|
<AssemblyName>GrafanaPostMod</AssemblyName>
|
||||||
|
<Version>1.0.1</Version>
|
||||||
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
|
<LangVersion>latest</LangVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<!-- Reference to BepInEx -->
|
||||||
|
<Reference Include="BepInEx">
|
||||||
|
<HintPath>E:\SteamLibrary\steamapps\common\REPO\BepInEx\core\BepInEx.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<!-- Reference to UnityEngine -->
|
||||||
|
<Reference Include="UnityEngine">
|
||||||
|
<HintPath>E:\SteamLibrary\steamapps\common\REPO\REPO_Data\Managed\UnityEngine.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<!-- Reference to UnityEngine.CoreModule -->
|
||||||
|
<Reference Include="UnityEngine.CoreModule">
|
||||||
|
<HintPath>E:\SteamLibrary\steamapps\common\REPO\REPO_Data\Managed\UnityEngine.CoreModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<!-- Reference to UnityEngine.UnityWebRequestModule -->
|
||||||
|
<Reference Include="UnityEngine.UnityWebRequestModule">
|
||||||
|
<HintPath>E:\SteamLibrary\steamapps\common\REPO\REPO_Data\Managed\UnityEngine.UnityWebRequestModule.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<!-- NuGet package for HTTP requests -->
|
||||||
|
<PackageReference Include="System.Net.Http" Version="4.3.4" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
|
@ -0,0 +1,4 @@
|
||||||
|
// <autogenerated />
|
||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")]
|
|
@ -0,0 +1,22 @@
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Reflection;
|
||||||
|
|
||||||
|
[assembly: System.Reflection.AssemblyCompanyAttribute("GrafanaPostMod")]
|
||||||
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||||
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.1.0")]
|
||||||
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.1+6c33c0b76a29d6b5430bc18548d898ab0e115976")]
|
||||||
|
[assembly: System.Reflection.AssemblyProductAttribute("GrafanaPostMod")]
|
||||||
|
[assembly: System.Reflection.AssemblyTitleAttribute("GrafanaPostMod")]
|
||||||
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.1.0")]
|
||||||
|
|
||||||
|
// Generated by the MSBuild WriteCodeFragment class.
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
47645a2170d6a2b0b20966e84eef3968e69f2a32ae419f680b5ad2a81fd99afe
|
|
@ -0,0 +1,5 @@
|
||||||
|
is_global = true
|
||||||
|
build_property.RootNamespace = Grafana
|
||||||
|
build_property.ProjectDir = D:\Github\Horizon-Studios\GrafanaPostMod\GrafanaPostMod\
|
||||||
|
build_property.EnableComHosting =
|
||||||
|
build_property.EnableGeneratedComInterfaceComImportInterop =
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,72 @@
|
||||||
|
{
|
||||||
|
"format": 1,
|
||||||
|
"restore": {
|
||||||
|
"D:\\Github\\Horizon-Studios\\GrafanaPostMod\\GrafanaPostMod\\Grafana.csproj": {}
|
||||||
|
},
|
||||||
|
"projects": {
|
||||||
|
"D:\\Github\\Horizon-Studios\\GrafanaPostMod\\GrafanaPostMod\\Grafana.csproj": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"restore": {
|
||||||
|
"projectUniqueName": "D:\\Github\\Horizon-Studios\\GrafanaPostMod\\GrafanaPostMod\\Grafana.csproj",
|
||||||
|
"projectName": "GrafanaPostMod",
|
||||||
|
"projectPath": "D:\\Github\\Horizon-Studios\\GrafanaPostMod\\GrafanaPostMod\\Grafana.csproj",
|
||||||
|
"packagesPath": "C:\\Users\\Max\\.nuget\\packages\\",
|
||||||
|
"outputPath": "D:\\Github\\Horizon-Studios\\GrafanaPostMod\\GrafanaPostMod\\obj\\",
|
||||||
|
"projectStyle": "PackageReference",
|
||||||
|
"configFilePaths": [
|
||||||
|
"C:\\Users\\Max\\AppData\\Roaming\\NuGet\\NuGet.Config"
|
||||||
|
],
|
||||||
|
"originalTargetFrameworks": [
|
||||||
|
"netstandard2.1"
|
||||||
|
],
|
||||||
|
"sources": {
|
||||||
|
"https://api.nuget.org/v3/index.json": {}
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"netstandard2.1": {
|
||||||
|
"targetAlias": "netstandard2.1",
|
||||||
|
"projectReferences": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"warningProperties": {
|
||||||
|
"warnAsError": [
|
||||||
|
"NU1605"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"restoreAuditProperties": {
|
||||||
|
"enableAudit": "true",
|
||||||
|
"auditLevel": "low",
|
||||||
|
"auditMode": "direct"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"frameworks": {
|
||||||
|
"netstandard2.1": {
|
||||||
|
"targetAlias": "netstandard2.1",
|
||||||
|
"dependencies": {
|
||||||
|
"System.Net.Http": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[4.3.4, )"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"imports": [
|
||||||
|
"net461",
|
||||||
|
"net462",
|
||||||
|
"net47",
|
||||||
|
"net471",
|
||||||
|
"net472",
|
||||||
|
"net48",
|
||||||
|
"net481"
|
||||||
|
],
|
||||||
|
"assetTargetFallback": true,
|
||||||
|
"warn": true,
|
||||||
|
"frameworkReferences": {
|
||||||
|
"NETStandard.Library": {
|
||||||
|
"privateAssets": "all"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.406\\RuntimeIdentifierGraph.json"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,15 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
|
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
|
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
|
||||||
|
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
|
||||||
|
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
|
||||||
|
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
|
||||||
|
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Max\.nuget\packages\</NuGetPackageFolders>
|
||||||
|
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
|
||||||
|
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.11.1</NuGetToolVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
|
||||||
|
<SourceRoot Include="C:\Users\Max\.nuget\packages\" />
|
||||||
|
</ItemGroup>
|
||||||
|
</Project>
|
|
@ -0,0 +1,2 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8" standalone="no"?>
|
||||||
|
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,58 @@
|
||||||
|
{
|
||||||
|
"version": 2,
|
||||||
|
"dgSpecHash": "mo7TMmaJkIM=",
|
||||||
|
"success": true,
|
||||||
|
"projectFilePath": "D:\\Github\\Horizon-Studios\\GrafanaPostMod\\GrafanaPostMod\\Grafana.csproj",
|
||||||
|
"expectedPackageFiles": [
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\microsoft.netcore.platforms\\1.1.1\\microsoft.netcore.platforms.1.1.1.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\microsoft.netcore.targets\\1.1.0\\microsoft.netcore.targets.1.1.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl\\4.3.2\\runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl\\4.3.2\\runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl\\4.3.2\\runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\runtime.native.system\\4.3.0\\runtime.native.system.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\runtime.native.system.net.http\\4.3.0\\runtime.native.system.net.http.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\runtime.native.system.security.cryptography.apple\\4.3.0\\runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\runtime.native.system.security.cryptography.openssl\\4.3.2\\runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl\\4.3.2\\runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl\\4.3.2\\runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple\\4.3.0\\runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl\\4.3.2\\runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl\\4.3.2\\runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl\\4.3.2\\runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl\\4.3.2\\runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl\\4.3.2\\runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.2.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.collections\\4.3.0\\system.collections.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.collections.concurrent\\4.3.0\\system.collections.concurrent.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.diagnostics.debug\\4.3.0\\system.diagnostics.debug.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.diagnostics.diagnosticsource\\4.3.0\\system.diagnostics.diagnosticsource.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.diagnostics.tracing\\4.3.0\\system.diagnostics.tracing.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.globalization\\4.3.0\\system.globalization.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.globalization.calendars\\4.3.0\\system.globalization.calendars.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.globalization.extensions\\4.3.0\\system.globalization.extensions.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.io\\4.3.0\\system.io.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.io.filesystem\\4.3.0\\system.io.filesystem.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.io.filesystem.primitives\\4.3.0\\system.io.filesystem.primitives.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.linq\\4.3.0\\system.linq.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.net.http\\4.3.4\\system.net.http.4.3.4.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.net.primitives\\4.3.0\\system.net.primitives.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.reflection\\4.3.0\\system.reflection.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.reflection.primitives\\4.3.0\\system.reflection.primitives.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.resources.resourcemanager\\4.3.0\\system.resources.resourcemanager.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.runtime\\4.3.0\\system.runtime.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.runtime.extensions\\4.3.0\\system.runtime.extensions.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.runtime.handles\\4.3.0\\system.runtime.handles.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.runtime.interopservices\\4.3.0\\system.runtime.interopservices.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.runtime.numerics\\4.3.0\\system.runtime.numerics.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.security.cryptography.algorithms\\4.3.0\\system.security.cryptography.algorithms.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.security.cryptography.cng\\4.3.0\\system.security.cryptography.cng.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.security.cryptography.csp\\4.3.0\\system.security.cryptography.csp.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.security.cryptography.encoding\\4.3.0\\system.security.cryptography.encoding.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.security.cryptography.openssl\\4.3.0\\system.security.cryptography.openssl.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.security.cryptography.primitives\\4.3.0\\system.security.cryptography.primitives.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.security.cryptography.x509certificates\\4.3.0\\system.security.cryptography.x509certificates.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.text.encoding\\4.3.0\\system.text.encoding.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.threading\\4.3.0\\system.threading.4.3.0.nupkg.sha512",
|
||||||
|
"C:\\Users\\Max\\.nuget\\packages\\system.threading.tasks\\4.3.0\\system.threading.tasks.4.3.0.nupkg.sha512"
|
||||||
|
],
|
||||||
|
"logs": []
|
||||||
|
}
|
|
@ -0,0 +1,60 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Net.Http;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using BepInEx;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace GrafanaPostMod
|
||||||
|
{
|
||||||
|
[BepInPlugin("com.pengucc.grafanapostmod", "Grafana Post Mod", "1.0.1")]
|
||||||
|
public class GrafanaPostMod : BaseUnityPlugin
|
||||||
|
{
|
||||||
|
private static HttpClient httpClient;
|
||||||
|
private float postRequestInterval = 15f; // 15 seconds
|
||||||
|
private string apiUrl = "https://stats.yourdomain.com/api/players"; // Ensure this is the correct URL
|
||||||
|
|
||||||
|
void Awake()
|
||||||
|
{
|
||||||
|
Logger.LogInfo("Grafana Post Mod is initializing...");
|
||||||
|
httpClient = new HttpClient();
|
||||||
|
StartCoroutine(PostRequestCoroutine());
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator PostRequestCoroutine()
|
||||||
|
{
|
||||||
|
while (true)
|
||||||
|
{
|
||||||
|
yield return new WaitForSeconds(postRequestInterval);
|
||||||
|
StartCoroutine(SendPostRequest());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private IEnumerator SendPostRequest()
|
||||||
|
{
|
||||||
|
string jsonData = "{ \"player_count\": 1 }";
|
||||||
|
StringContent content = new StringContent(jsonData, Encoding.UTF8, "application/json");
|
||||||
|
Task<HttpResponseMessage> requestTask = httpClient.PostAsync(apiUrl, content);
|
||||||
|
yield return new WaitUntil(() => requestTask.IsCompleted);
|
||||||
|
|
||||||
|
if (requestTask.Exception != null)
|
||||||
|
{
|
||||||
|
Logger.LogError($"Error sending POST request: {requestTask.Exception.Message}");
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
HttpResponseMessage response = requestTask.Result;
|
||||||
|
if (!response.IsSuccessStatusCode)
|
||||||
|
{
|
||||||
|
Logger.LogError($"Error: Received HTTP {(int)response.StatusCode} {response.ReasonPhrase}");
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
Task<string> responseBodyTask = response.Content.ReadAsStringAsync();
|
||||||
|
yield return new WaitUntil(() => responseBodyTask.IsCompleted);
|
||||||
|
|
||||||
|
Logger.LogInfo($"Successfully sent POST request. Response: {responseBodyTask.Result}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
41
README.md
41
README.md
|
@ -1,2 +1,43 @@
|
||||||
# GrafanaPostMod
|
# GrafanaPostMod
|
||||||
|
|
||||||
|
A simple mod that tracks live player counts for your BepInEx modpack.
|
||||||
|
|
||||||
|
# ⚠️Please Read!⚠️
|
||||||
|
|
||||||
|
This mod is for those who run bigger projects, nobody is expected to use this mod unless they like seeing cool numbers go up.
|
||||||
|
|
||||||
|
You'll need the following things in order to begin:
|
||||||
|
|
||||||
|
- An exposed server for the backend (PLEASE DO NOT EXPOSE YOUR HOME IP)
|
||||||
|
- A web domain (I suppose it's not REQUIRED if you really want to do it over IP, but never recommended)
|
||||||
|
- A Grafana instance
|
||||||
|
- A Prometheus instance
|
||||||
|
- dotnet v8.0.406
|
||||||
|
|
||||||
|
I may be willing to host backends and maybe even grant a subdomain to some modpack developers, however I cannot do this for everyone.
|
||||||
|
|
||||||
|
# Building the mod
|
||||||
|
|
||||||
|
1. Modify `plugin.cs` on line 16. Replace `https://stats.yourdomain.com` with the subdomain you intend on using for your backend. (Keep `/api/players` there)
|
||||||
|
|
||||||
|
2. Modify `Grafana.csproj` and change the Reference paths to your correct directories. You can reference the following games in order to build this project:
|
||||||
|
|
||||||
|
- Lethal Company
|
||||||
|
- Content Warning
|
||||||
|
- R.E.P.O
|
||||||
|
|
||||||
|
There may be more, but those are the ones I know off the top of my head.
|
||||||
|
|
||||||
|
3. Open a terminal window in the directory of `Grafana.csproj` and run: `dotnet build .\Grafana.csproj`
|
||||||
|
|
||||||
|
The output .dll will be in `obj\Debug\netstandard2.1`
|
||||||
|
|
||||||
|
# Setting up the backend
|
||||||
|
|
||||||
|
Upload the backend files to a system you plan on running it on, keep in mind it needs to be public facing (I personally recommend a reverse proxy so that the IP isn't just sitting there)
|
||||||
|
|
||||||
|
1. Run `npm i` in the same directory as the backend files
|
||||||
|
|
||||||
|
2. Run `npm i pm2 -g` then run `pm2 run ./start.sh --name PostBackend` and finally run `pm2 startup`
|
||||||
|
|
||||||
|
3.
|
Loading…
Reference in New Issue