diff --git a/BUILDS/net6.0/CMD_LevelingSystem.deps.json b/BUILDS/net6.0/CMD_LevelingSystem.deps.json deleted file mode 100644 index ab0049d..0000000 --- a/BUILDS/net6.0/CMD_LevelingSystem.deps.json +++ /dev/null @@ -1,268 +0,0 @@ -{ - "runtimeTarget": { - "name": ".NETCoreApp,Version=v6.0", - "signature": "" - }, - "compilationOptions": {}, - "targets": { - ".NETCoreApp,Version=v6.0": { - "CMD_LevelingSystem/1.0.0": { - "dependencies": { - "PluginManager": "1.0.0" - }, - "runtime": { - "CMD_LevelingSystem.dll": {} - } - }, - "Discord.Net/3.6.1": { - "dependencies": { - "Discord.Net.Commands": "3.6.1", - "Discord.Net.Core": "3.6.1", - "Discord.Net.Interactions": "3.6.1", - "Discord.Net.Rest": "3.6.1", - "Discord.Net.WebSocket": "3.6.1", - "Discord.Net.Webhook": "3.6.1" - } - }, - "Discord.Net.Commands/3.6.1": { - "dependencies": { - "Discord.Net.Core": "3.6.1" - }, - "runtime": { - "lib/net6.0/Discord.Net.Commands.dll": { - "assemblyVersion": "3.6.1.0", - "fileVersion": "3.6.1.0" - } - } - }, - "Discord.Net.Core/3.6.1": { - "dependencies": { - "Newtonsoft.Json": "13.0.1", - "System.Collections.Immutable": "5.0.0", - "System.Interactive.Async": "5.0.0", - "System.ValueTuple": "4.5.0" - }, - "runtime": { - "lib/net6.0/Discord.Net.Core.dll": { - "assemblyVersion": "3.6.1.0", - "fileVersion": "3.6.1.0" - } - } - }, - "Discord.Net.Interactions/3.6.1": { - "dependencies": { - "Discord.Net.Core": "3.6.1", - "Discord.Net.Rest": "3.6.1", - "Discord.Net.WebSocket": "3.6.1", - "Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0", - "System.Collections.Immutable": "5.0.0", - "System.Reactive": "5.0.0" - }, - "runtime": { - "lib/net6.0/Discord.Net.Interactions.dll": { - "assemblyVersion": "3.6.1.0", - "fileVersion": "3.6.1.0" - } - } - }, - "Discord.Net.Rest/3.6.1": { - "dependencies": { - "Discord.Net.Core": "3.6.1" - }, - "runtime": { - "lib/net6.0/Discord.Net.Rest.dll": { - "assemblyVersion": "3.6.1.0", - "fileVersion": "3.6.1.0" - } - } - }, - "Discord.Net.Webhook/3.6.1": { - "dependencies": { - "Discord.Net.Core": "3.6.1", - "Discord.Net.Rest": "3.6.1" - }, - "runtime": { - "lib/net6.0/Discord.Net.Webhook.dll": { - "assemblyVersion": "3.6.1.0", - "fileVersion": "3.6.1.0" - } - } - }, - "Discord.Net.WebSocket/3.6.1": { - "dependencies": { - "Discord.Net.Core": "3.6.1", - "Discord.Net.Rest": "3.6.1" - }, - "runtime": { - "lib/net6.0/Discord.Net.WebSocket.dll": { - "assemblyVersion": "3.6.1.0", - "fileVersion": "3.6.1.0" - } - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": { - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - } - } - }, - "Newtonsoft.Json/13.0.1": { - "runtime": { - "lib/netstandard2.0/Newtonsoft.Json.dll": { - "assemblyVersion": "13.0.0.0", - "fileVersion": "13.0.1.25517" - } - } - }, - "System.Collections.Immutable/5.0.0": {}, - "System.Interactive.Async/5.0.0": { - "dependencies": { - "System.Linq.Async": "5.0.0" - }, - "runtime": { - "lib/netcoreapp3.1/System.Interactive.Async.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.0.1" - } - } - }, - "System.Linq.Async/5.0.0": { - "runtime": { - "lib/netcoreapp3.1/System.Linq.Async.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.0.1" - } - } - }, - "System.Reactive/5.0.0": { - "runtime": { - "lib/net5.0/System.Reactive.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.0.1" - } - } - }, - "System.ValueTuple/4.5.0": {}, - "PluginManager/1.0.0": { - "dependencies": { - "Discord.Net": "3.6.1" - }, - "runtime": { - "PluginManager.dll": {} - } - } - } - }, - "libraries": { - "CMD_LevelingSystem/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "Discord.Net/3.6.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-TfcL/HG57fVt//WVJ2XyF2PlytY9IYkkwwkPLIhvu5FW4wf9rm7+N8RPh4qtELLfsa5ES0FK2RbgYjABRR9AjA==", - "path": "discord.net/3.6.1", - "hashPath": "discord.net.3.6.1.nupkg.sha512" - }, - "Discord.Net.Commands/3.6.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-kK7m571yzSzPd93o+n8Z+TfvX62BT1HtOEZIWXKwXWO8itP/sgqBNExjWK/6DOpkbD6+khc2f3rp+TA0rJD88g==", - "path": "discord.net.commands/3.6.1", - "hashPath": "discord.net.commands.3.6.1.nupkg.sha512" - }, - "Discord.Net.Core/3.6.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ibVjQiWzgqh0GyP/GXE2kv3TA/9ysmmNFG/WmRE7GepQQAXXGxVUO9IMJ8h14EvIXMQ0m0DktMe5DkUnilo3Ag==", - "path": "discord.net.core/3.6.1", - "hashPath": "discord.net.core.3.6.1.nupkg.sha512" - }, - "Discord.Net.Interactions/3.6.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-WGOxz6SMUu4WS5b/JdrhlwQletcplBIYqvjFBBDfnqE+uNJqcNGtAdyjLqIILfXGx8aSSSSYZSCeAUa7FZ8Yew==", - "path": "discord.net.interactions/3.6.1", - "hashPath": "discord.net.interactions.3.6.1.nupkg.sha512" - }, - "Discord.Net.Rest/3.6.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-T7RRThIS23roFEJwTL1l7aawjVyn7ZB5yH3tMge0d6TiCzzp4V4FAZ+ArTt19LHRFhPly90v8V3sWqmTMN+5Zg==", - "path": "discord.net.rest/3.6.1", - "hashPath": "discord.net.rest.3.6.1.nupkg.sha512" - }, - "Discord.Net.Webhook/3.6.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-xikKHIGAIMz0BzHkaTKb48DNpFjKW8mvJjLJSezJ1xQOu+laHNk/hav4qxVtyZz7HSI/vGTkmlq9hKVhWzpaUA==", - "path": "discord.net.webhook/3.6.1", - "hashPath": "discord.net.webhook.3.6.1.nupkg.sha512" - }, - "Discord.Net.WebSocket/3.6.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-hF22Xy7URlVEDQZ69INOgzPvFUsIDfd+r6U+1yF9HWdBn3d4THnvAAhkv1TraSx/T/MKS7g+jvk/HZ3mh5S3aw==", - "path": "discord.net.websocket/3.6.1", - "hashPath": "discord.net.websocket.3.6.1.nupkg.sha512" - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ORj7Zh81gC69TyvmcUm9tSzytcy8AVousi+IVRAI8nLieQjOFryRusSFh7+aLk16FN9pQNqJAiMd7BTKINK0kA==", - "path": "microsoft.extensions.dependencyinjection.abstractions/5.0.0", - "hashPath": "microsoft.extensions.dependencyinjection.abstractions.5.0.0.nupkg.sha512" - }, - "Newtonsoft.Json/13.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==", - "path": "newtonsoft.json/13.0.1", - "hashPath": "newtonsoft.json.13.0.1.nupkg.sha512" - }, - "System.Collections.Immutable/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-FXkLXiK0sVVewcso0imKQoOxjoPAj42R8HtjjbSjVPAzwDfzoyoznWxgA3c38LDbN9SJux1xXoXYAhz98j7r2g==", - "path": "system.collections.immutable/5.0.0", - "hashPath": "system.collections.immutable.5.0.0.nupkg.sha512" - }, - "System.Interactive.Async/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-QaqhQVDiULcu4vm6o89+iP329HcK44cETHOYgy/jfEjtzeFy0ZxmuM7nel9ocjnKxEM4yh1mli7hgh8Q9o+/Iw==", - "path": "system.interactive.async/5.0.0", - "hashPath": "system.interactive.async.5.0.0.nupkg.sha512" - }, - "System.Linq.Async/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-cPtIuuH8TIjVHSi2ewwReWGW1PfChPE0LxPIDlfwVcLuTM9GANFTXiMB7k3aC4sk3f0cQU25LNKzx+jZMxijqw==", - "path": "system.linq.async/5.0.0", - "hashPath": "system.linq.async.5.0.0.nupkg.sha512" - }, - "System.Reactive/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-erBZjkQHWL9jpasCE/0qKAryzVBJFxGHVBAvgRN1bzM0q2s1S4oYREEEL0Vb+1kA/6BKb5FjUZMp5VXmy+gzkQ==", - "path": "system.reactive/5.0.0", - "hashPath": "system.reactive.5.0.0.nupkg.sha512" - }, - "System.ValueTuple/4.5.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==", - "path": "system.valuetuple/4.5.0", - "hashPath": "system.valuetuple.4.5.0.nupkg.sha512" - }, - "PluginManager/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - } - } -} \ No newline at end of file diff --git a/BUILDS/net6.0/CMD_LevelingSystem.dll b/BUILDS/net6.0/CMD_LevelingSystem.dll deleted file mode 100644 index c69f2b3..0000000 Binary files a/BUILDS/net6.0/CMD_LevelingSystem.dll and /dev/null differ diff --git a/BUILDS/net6.0/EVE_LevelingSystem.deps.json b/BUILDS/net6.0/EVE_LevelingSystem.deps.json deleted file mode 100644 index 1b99176..0000000 --- a/BUILDS/net6.0/EVE_LevelingSystem.deps.json +++ /dev/null @@ -1,268 +0,0 @@ -{ - "runtimeTarget": { - "name": ".NETCoreApp,Version=v6.0", - "signature": "" - }, - "compilationOptions": {}, - "targets": { - ".NETCoreApp,Version=v6.0": { - "EVE_LevelingSystem/1.0.0": { - "dependencies": { - "PluginManager": "1.0.0" - }, - "runtime": { - "EVE_LevelingSystem.dll": {} - } - }, - "Discord.Net/3.6.1": { - "dependencies": { - "Discord.Net.Commands": "3.6.1", - "Discord.Net.Core": "3.6.1", - "Discord.Net.Interactions": "3.6.1", - "Discord.Net.Rest": "3.6.1", - "Discord.Net.WebSocket": "3.6.1", - "Discord.Net.Webhook": "3.6.1" - } - }, - "Discord.Net.Commands/3.6.1": { - "dependencies": { - "Discord.Net.Core": "3.6.1" - }, - "runtime": { - "lib/net6.0/Discord.Net.Commands.dll": { - "assemblyVersion": "3.6.1.0", - "fileVersion": "3.6.1.0" - } - } - }, - "Discord.Net.Core/3.6.1": { - "dependencies": { - "Newtonsoft.Json": "13.0.1", - "System.Collections.Immutable": "5.0.0", - "System.Interactive.Async": "5.0.0", - "System.ValueTuple": "4.5.0" - }, - "runtime": { - "lib/net6.0/Discord.Net.Core.dll": { - "assemblyVersion": "3.6.1.0", - "fileVersion": "3.6.1.0" - } - } - }, - "Discord.Net.Interactions/3.6.1": { - "dependencies": { - "Discord.Net.Core": "3.6.1", - "Discord.Net.Rest": "3.6.1", - "Discord.Net.WebSocket": "3.6.1", - "Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0", - "System.Collections.Immutable": "5.0.0", - "System.Reactive": "5.0.0" - }, - "runtime": { - "lib/net6.0/Discord.Net.Interactions.dll": { - "assemblyVersion": "3.6.1.0", - "fileVersion": "3.6.1.0" - } - } - }, - "Discord.Net.Rest/3.6.1": { - "dependencies": { - "Discord.Net.Core": "3.6.1" - }, - "runtime": { - "lib/net6.0/Discord.Net.Rest.dll": { - "assemblyVersion": "3.6.1.0", - "fileVersion": "3.6.1.0" - } - } - }, - "Discord.Net.Webhook/3.6.1": { - "dependencies": { - "Discord.Net.Core": "3.6.1", - "Discord.Net.Rest": "3.6.1" - }, - "runtime": { - "lib/net6.0/Discord.Net.Webhook.dll": { - "assemblyVersion": "3.6.1.0", - "fileVersion": "3.6.1.0" - } - } - }, - "Discord.Net.WebSocket/3.6.1": { - "dependencies": { - "Discord.Net.Core": "3.6.1", - "Discord.Net.Rest": "3.6.1" - }, - "runtime": { - "lib/net6.0/Discord.Net.WebSocket.dll": { - "assemblyVersion": "3.6.1.0", - "fileVersion": "3.6.1.0" - } - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": { - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - } - } - }, - "Newtonsoft.Json/13.0.1": { - "runtime": { - "lib/netstandard2.0/Newtonsoft.Json.dll": { - "assemblyVersion": "13.0.0.0", - "fileVersion": "13.0.1.25517" - } - } - }, - "System.Collections.Immutable/5.0.0": {}, - "System.Interactive.Async/5.0.0": { - "dependencies": { - "System.Linq.Async": "5.0.0" - }, - "runtime": { - "lib/netcoreapp3.1/System.Interactive.Async.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.0.1" - } - } - }, - "System.Linq.Async/5.0.0": { - "runtime": { - "lib/netcoreapp3.1/System.Linq.Async.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.0.1" - } - } - }, - "System.Reactive/5.0.0": { - "runtime": { - "lib/net5.0/System.Reactive.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.0.1" - } - } - }, - "System.ValueTuple/4.5.0": {}, - "PluginManager/1.0.0": { - "dependencies": { - "Discord.Net": "3.6.1" - }, - "runtime": { - "PluginManager.dll": {} - } - } - } - }, - "libraries": { - "EVE_LevelingSystem/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "Discord.Net/3.6.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-TfcL/HG57fVt//WVJ2XyF2PlytY9IYkkwwkPLIhvu5FW4wf9rm7+N8RPh4qtELLfsa5ES0FK2RbgYjABRR9AjA==", - "path": "discord.net/3.6.1", - "hashPath": "discord.net.3.6.1.nupkg.sha512" - }, - "Discord.Net.Commands/3.6.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-kK7m571yzSzPd93o+n8Z+TfvX62BT1HtOEZIWXKwXWO8itP/sgqBNExjWK/6DOpkbD6+khc2f3rp+TA0rJD88g==", - "path": "discord.net.commands/3.6.1", - "hashPath": "discord.net.commands.3.6.1.nupkg.sha512" - }, - "Discord.Net.Core/3.6.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ibVjQiWzgqh0GyP/GXE2kv3TA/9ysmmNFG/WmRE7GepQQAXXGxVUO9IMJ8h14EvIXMQ0m0DktMe5DkUnilo3Ag==", - "path": "discord.net.core/3.6.1", - "hashPath": "discord.net.core.3.6.1.nupkg.sha512" - }, - "Discord.Net.Interactions/3.6.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-WGOxz6SMUu4WS5b/JdrhlwQletcplBIYqvjFBBDfnqE+uNJqcNGtAdyjLqIILfXGx8aSSSSYZSCeAUa7FZ8Yew==", - "path": "discord.net.interactions/3.6.1", - "hashPath": "discord.net.interactions.3.6.1.nupkg.sha512" - }, - "Discord.Net.Rest/3.6.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-T7RRThIS23roFEJwTL1l7aawjVyn7ZB5yH3tMge0d6TiCzzp4V4FAZ+ArTt19LHRFhPly90v8V3sWqmTMN+5Zg==", - "path": "discord.net.rest/3.6.1", - "hashPath": "discord.net.rest.3.6.1.nupkg.sha512" - }, - "Discord.Net.Webhook/3.6.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-xikKHIGAIMz0BzHkaTKb48DNpFjKW8mvJjLJSezJ1xQOu+laHNk/hav4qxVtyZz7HSI/vGTkmlq9hKVhWzpaUA==", - "path": "discord.net.webhook/3.6.1", - "hashPath": "discord.net.webhook.3.6.1.nupkg.sha512" - }, - "Discord.Net.WebSocket/3.6.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-hF22Xy7URlVEDQZ69INOgzPvFUsIDfd+r6U+1yF9HWdBn3d4THnvAAhkv1TraSx/T/MKS7g+jvk/HZ3mh5S3aw==", - "path": "discord.net.websocket/3.6.1", - "hashPath": "discord.net.websocket.3.6.1.nupkg.sha512" - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ORj7Zh81gC69TyvmcUm9tSzytcy8AVousi+IVRAI8nLieQjOFryRusSFh7+aLk16FN9pQNqJAiMd7BTKINK0kA==", - "path": "microsoft.extensions.dependencyinjection.abstractions/5.0.0", - "hashPath": "microsoft.extensions.dependencyinjection.abstractions.5.0.0.nupkg.sha512" - }, - "Newtonsoft.Json/13.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==", - "path": "newtonsoft.json/13.0.1", - "hashPath": "newtonsoft.json.13.0.1.nupkg.sha512" - }, - "System.Collections.Immutable/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-FXkLXiK0sVVewcso0imKQoOxjoPAj42R8HtjjbSjVPAzwDfzoyoznWxgA3c38LDbN9SJux1xXoXYAhz98j7r2g==", - "path": "system.collections.immutable/5.0.0", - "hashPath": "system.collections.immutable.5.0.0.nupkg.sha512" - }, - "System.Interactive.Async/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-QaqhQVDiULcu4vm6o89+iP329HcK44cETHOYgy/jfEjtzeFy0ZxmuM7nel9ocjnKxEM4yh1mli7hgh8Q9o+/Iw==", - "path": "system.interactive.async/5.0.0", - "hashPath": "system.interactive.async.5.0.0.nupkg.sha512" - }, - "System.Linq.Async/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-cPtIuuH8TIjVHSi2ewwReWGW1PfChPE0LxPIDlfwVcLuTM9GANFTXiMB7k3aC4sk3f0cQU25LNKzx+jZMxijqw==", - "path": "system.linq.async/5.0.0", - "hashPath": "system.linq.async.5.0.0.nupkg.sha512" - }, - "System.Reactive/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-erBZjkQHWL9jpasCE/0qKAryzVBJFxGHVBAvgRN1bzM0q2s1S4oYREEEL0Vb+1kA/6BKb5FjUZMp5VXmy+gzkQ==", - "path": "system.reactive/5.0.0", - "hashPath": "system.reactive.5.0.0.nupkg.sha512" - }, - "System.ValueTuple/4.5.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==", - "path": "system.valuetuple/4.5.0", - "hashPath": "system.valuetuple.4.5.0.nupkg.sha512" - }, - "PluginManager/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - } - } -} \ No newline at end of file diff --git a/BUILDS/net6.0/EVE_LevelingSystem.dll b/BUILDS/net6.0/EVE_LevelingSystem.dll deleted file mode 100644 index 58c77e5..0000000 Binary files a/BUILDS/net6.0/EVE_LevelingSystem.dll and /dev/null differ diff --git a/BUILDS/net6.0/PluginManager.dll b/BUILDS/net6.0/PluginManager.dll index 484c585..58b2771 100644 Binary files a/BUILDS/net6.0/PluginManager.dll and b/BUILDS/net6.0/PluginManager.dll differ diff --git a/BUILDS/net6.0/StartupEvents.deps.json b/BUILDS/net6.0/StartupEvents.deps.json deleted file mode 100644 index 429d030..0000000 --- a/BUILDS/net6.0/StartupEvents.deps.json +++ /dev/null @@ -1,268 +0,0 @@ -{ - "runtimeTarget": { - "name": ".NETCoreApp,Version=v6.0", - "signature": "" - }, - "compilationOptions": {}, - "targets": { - ".NETCoreApp,Version=v6.0": { - "StartupEvents/1.0.0": { - "dependencies": { - "PluginManager": "1.0.0" - }, - "runtime": { - "StartupEvents.dll": {} - } - }, - "Discord.Net/3.6.1": { - "dependencies": { - "Discord.Net.Commands": "3.6.1", - "Discord.Net.Core": "3.6.1", - "Discord.Net.Interactions": "3.6.1", - "Discord.Net.Rest": "3.6.1", - "Discord.Net.WebSocket": "3.6.1", - "Discord.Net.Webhook": "3.6.1" - } - }, - "Discord.Net.Commands/3.6.1": { - "dependencies": { - "Discord.Net.Core": "3.6.1" - }, - "runtime": { - "lib/net6.0/Discord.Net.Commands.dll": { - "assemblyVersion": "3.6.1.0", - "fileVersion": "3.6.1.0" - } - } - }, - "Discord.Net.Core/3.6.1": { - "dependencies": { - "Newtonsoft.Json": "13.0.1", - "System.Collections.Immutable": "5.0.0", - "System.Interactive.Async": "5.0.0", - "System.ValueTuple": "4.5.0" - }, - "runtime": { - "lib/net6.0/Discord.Net.Core.dll": { - "assemblyVersion": "3.6.1.0", - "fileVersion": "3.6.1.0" - } - } - }, - "Discord.Net.Interactions/3.6.1": { - "dependencies": { - "Discord.Net.Core": "3.6.1", - "Discord.Net.Rest": "3.6.1", - "Discord.Net.WebSocket": "3.6.1", - "Microsoft.Extensions.DependencyInjection.Abstractions": "5.0.0", - "System.Collections.Immutable": "5.0.0", - "System.Reactive": "5.0.0" - }, - "runtime": { - "lib/net6.0/Discord.Net.Interactions.dll": { - "assemblyVersion": "3.6.1.0", - "fileVersion": "3.6.1.0" - } - } - }, - "Discord.Net.Rest/3.6.1": { - "dependencies": { - "Discord.Net.Core": "3.6.1" - }, - "runtime": { - "lib/net6.0/Discord.Net.Rest.dll": { - "assemblyVersion": "3.6.1.0", - "fileVersion": "3.6.1.0" - } - } - }, - "Discord.Net.Webhook/3.6.1": { - "dependencies": { - "Discord.Net.Core": "3.6.1", - "Discord.Net.Rest": "3.6.1" - }, - "runtime": { - "lib/net6.0/Discord.Net.Webhook.dll": { - "assemblyVersion": "3.6.1.0", - "fileVersion": "3.6.1.0" - } - } - }, - "Discord.Net.WebSocket/3.6.1": { - "dependencies": { - "Discord.Net.Core": "3.6.1", - "Discord.Net.Rest": "3.6.1" - }, - "runtime": { - "lib/net6.0/Discord.Net.WebSocket.dll": { - "assemblyVersion": "3.6.1.0", - "fileVersion": "3.6.1.0" - } - } - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": { - "runtime": { - "lib/netstandard2.0/Microsoft.Extensions.DependencyInjection.Abstractions.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.20.51904" - } - } - }, - "Newtonsoft.Json/13.0.1": { - "runtime": { - "lib/netstandard2.0/Newtonsoft.Json.dll": { - "assemblyVersion": "13.0.0.0", - "fileVersion": "13.0.1.25517" - } - } - }, - "System.Collections.Immutable/5.0.0": {}, - "System.Interactive.Async/5.0.0": { - "dependencies": { - "System.Linq.Async": "5.0.0" - }, - "runtime": { - "lib/netcoreapp3.1/System.Interactive.Async.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.0.1" - } - } - }, - "System.Linq.Async/5.0.0": { - "runtime": { - "lib/netcoreapp3.1/System.Linq.Async.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.0.1" - } - } - }, - "System.Reactive/5.0.0": { - "runtime": { - "lib/net5.0/System.Reactive.dll": { - "assemblyVersion": "5.0.0.0", - "fileVersion": "5.0.0.1" - } - } - }, - "System.ValueTuple/4.5.0": {}, - "PluginManager/1.0.0": { - "dependencies": { - "Discord.Net": "3.6.1" - }, - "runtime": { - "PluginManager.dll": {} - } - } - } - }, - "libraries": { - "StartupEvents/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - }, - "Discord.Net/3.6.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-TfcL/HG57fVt//WVJ2XyF2PlytY9IYkkwwkPLIhvu5FW4wf9rm7+N8RPh4qtELLfsa5ES0FK2RbgYjABRR9AjA==", - "path": "discord.net/3.6.1", - "hashPath": "discord.net.3.6.1.nupkg.sha512" - }, - "Discord.Net.Commands/3.6.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-kK7m571yzSzPd93o+n8Z+TfvX62BT1HtOEZIWXKwXWO8itP/sgqBNExjWK/6DOpkbD6+khc2f3rp+TA0rJD88g==", - "path": "discord.net.commands/3.6.1", - "hashPath": "discord.net.commands.3.6.1.nupkg.sha512" - }, - "Discord.Net.Core/3.6.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ibVjQiWzgqh0GyP/GXE2kv3TA/9ysmmNFG/WmRE7GepQQAXXGxVUO9IMJ8h14EvIXMQ0m0DktMe5DkUnilo3Ag==", - "path": "discord.net.core/3.6.1", - "hashPath": "discord.net.core.3.6.1.nupkg.sha512" - }, - "Discord.Net.Interactions/3.6.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-WGOxz6SMUu4WS5b/JdrhlwQletcplBIYqvjFBBDfnqE+uNJqcNGtAdyjLqIILfXGx8aSSSSYZSCeAUa7FZ8Yew==", - "path": "discord.net.interactions/3.6.1", - "hashPath": "discord.net.interactions.3.6.1.nupkg.sha512" - }, - "Discord.Net.Rest/3.6.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-T7RRThIS23roFEJwTL1l7aawjVyn7ZB5yH3tMge0d6TiCzzp4V4FAZ+ArTt19LHRFhPly90v8V3sWqmTMN+5Zg==", - "path": "discord.net.rest/3.6.1", - "hashPath": "discord.net.rest.3.6.1.nupkg.sha512" - }, - "Discord.Net.Webhook/3.6.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-xikKHIGAIMz0BzHkaTKb48DNpFjKW8mvJjLJSezJ1xQOu+laHNk/hav4qxVtyZz7HSI/vGTkmlq9hKVhWzpaUA==", - "path": "discord.net.webhook/3.6.1", - "hashPath": "discord.net.webhook.3.6.1.nupkg.sha512" - }, - "Discord.Net.WebSocket/3.6.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-hF22Xy7URlVEDQZ69INOgzPvFUsIDfd+r6U+1yF9HWdBn3d4THnvAAhkv1TraSx/T/MKS7g+jvk/HZ3mh5S3aw==", - "path": "discord.net.websocket/3.6.1", - "hashPath": "discord.net.websocket.3.6.1.nupkg.sha512" - }, - "Microsoft.Extensions.DependencyInjection.Abstractions/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ORj7Zh81gC69TyvmcUm9tSzytcy8AVousi+IVRAI8nLieQjOFryRusSFh7+aLk16FN9pQNqJAiMd7BTKINK0kA==", - "path": "microsoft.extensions.dependencyinjection.abstractions/5.0.0", - "hashPath": "microsoft.extensions.dependencyinjection.abstractions.5.0.0.nupkg.sha512" - }, - "Newtonsoft.Json/13.0.1": { - "type": "package", - "serviceable": true, - "sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==", - "path": "newtonsoft.json/13.0.1", - "hashPath": "newtonsoft.json.13.0.1.nupkg.sha512" - }, - "System.Collections.Immutable/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-FXkLXiK0sVVewcso0imKQoOxjoPAj42R8HtjjbSjVPAzwDfzoyoznWxgA3c38LDbN9SJux1xXoXYAhz98j7r2g==", - "path": "system.collections.immutable/5.0.0", - "hashPath": "system.collections.immutable.5.0.0.nupkg.sha512" - }, - "System.Interactive.Async/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-QaqhQVDiULcu4vm6o89+iP329HcK44cETHOYgy/jfEjtzeFy0ZxmuM7nel9ocjnKxEM4yh1mli7hgh8Q9o+/Iw==", - "path": "system.interactive.async/5.0.0", - "hashPath": "system.interactive.async.5.0.0.nupkg.sha512" - }, - "System.Linq.Async/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-cPtIuuH8TIjVHSi2ewwReWGW1PfChPE0LxPIDlfwVcLuTM9GANFTXiMB7k3aC4sk3f0cQU25LNKzx+jZMxijqw==", - "path": "system.linq.async/5.0.0", - "hashPath": "system.linq.async.5.0.0.nupkg.sha512" - }, - "System.Reactive/5.0.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-erBZjkQHWL9jpasCE/0qKAryzVBJFxGHVBAvgRN1bzM0q2s1S4oYREEEL0Vb+1kA/6BKb5FjUZMp5VXmy+gzkQ==", - "path": "system.reactive/5.0.0", - "hashPath": "system.reactive.5.0.0.nupkg.sha512" - }, - "System.ValueTuple/4.5.0": { - "type": "package", - "serviceable": true, - "sha512": "sha512-okurQJO6NRE/apDIP23ajJ0hpiNmJ+f0BwOlB/cSqTLQlw5upkf+5+96+iG2Jw40G1fCVCyPz/FhIABUjMR+RQ==", - "path": "system.valuetuple/4.5.0", - "hashPath": "system.valuetuple.4.5.0.nupkg.sha512" - }, - "PluginManager/1.0.0": { - "type": "project", - "serviceable": false, - "sha512": "" - } - } -} \ No newline at end of file diff --git a/BUILDS/net6.0/StartupEvents.dll b/BUILDS/net6.0/StartupEvents.dll deleted file mode 100644 index c289609..0000000 Binary files a/BUILDS/net6.0/StartupEvents.dll and /dev/null differ diff --git a/CMD_LevelingSystem/CMD_LevelingSystem.csproj b/CMD_LevelingSystem/CMD_LevelingSystem.csproj index 61313a8..5058233 100644 --- a/CMD_LevelingSystem/CMD_LevelingSystem.csproj +++ b/CMD_LevelingSystem/CMD_LevelingSystem.csproj @@ -2,16 +2,9 @@ net6.0 - - - - ..\BUILDS\ - DEBUG;TRACE - prompt - none - false - false - + enable + enable + ..\DiscordBot\bin\Debug\net6.0\Data\Plugins\Commands\LevelingSystem diff --git a/CMD_LevelingSystem/Commands/level.cs b/CMD_LevelingSystem/Commands/level.cs deleted file mode 100644 index d709e67..0000000 --- a/CMD_LevelingSystem/Commands/level.cs +++ /dev/null @@ -1,61 +0,0 @@ -using Discord; -using Discord.Commands; -using Discord.WebSocket; - -using PluginManager.Interfaces; -using PluginManager.LanguageSystem; - -using System; - - -public class level : DBCommand -{ - public string Command => "rank"; - - public string Description => "Display your current level"; - - public string Usage => "rank"; - - public bool canUseDM => false; - - public bool canUseServer => true; - - public bool requireAdmin => false; - - public async void Execute(SocketCommandContext context, SocketMessage message, DiscordSocketClient client, bool isDM) - { - - try - { - int cLv = Data.GetLevel(message.Author.Id); - Int64 cEXP = Data.GetExp(message.Author.Id); - Int64 rEXP = Data.GetReqEXP(message.Author.Id); - - var embed = new EmbedBuilder() - { - Title = "Leveling System", - Description = message.Author.Mention - }; - Random r = new Random(); - int _r = r.Next(0, 256); - int _g = r.Next(0, 256); - int _b = r.Next(0, 256); - embed.WithColor(new Color(_r, _g, _b)); - embed.AddField("Level", cLv); - embed.AddField("Current EXP", cEXP); - embed.AddField("Required Exp to Level up", rEXP); - embed.WithCurrentTimestamp(); - await message.Channel.SendMessageAsync(embed: embed.Build()); - } - catch - { - if (Language.ActiveLanguage != null) - await message.Channel.SendMessageAsync(Language.ActiveLanguage.LanguageWords["DB_COMMAND_RANK_NO_RANK"]); - else await message.Channel.SendMessageAsync("You are unranked now. Please type a message in chat that is not a command and try again this command"); - return; - } - - - } -} - diff --git a/CMD_LevelingSystem/Items/Leveling System/Core.cs b/CMD_LevelingSystem/Items/Leveling System/Core.cs deleted file mode 100644 index 10314f4..0000000 --- a/CMD_LevelingSystem/Items/Leveling System/Core.cs +++ /dev/null @@ -1,62 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Threading.Tasks; - -public class Core -{ - - public static Dictionary playerMessages = new Dictionary(); - - private static readonly string folder = @".\Data\Resources\LevelingSystem\"; - - public static int GetLevel(ulong id) => int.Parse(File.ReadAllText(Path.Combine(folder, id.ToString() + ".data")).Split(',')[0].Split('=')[1]); - - - public static Int64 GetExp(ulong id) => Int64.Parse(File.ReadAllText(Path.Combine(folder, id.ToString() + ".data")).Split(',')[1].Split('=')[1]); - - - public static Int64 GetReqEXP(ulong id) => Int64.Parse(File.ReadAllText(Path.Combine(folder, id.ToString() + ".data")).Split(',')[2].Split('=')[1]); - public static void SaveData(ulong id, int lv, Int64 cexp, Int64 rexp) - { - Directory.CreateDirectory(folder); - File.WriteAllText(Path.Combine(folder, id.ToString() + ".data"), $"Level={lv},EXP={cexp},REXP={rexp}"); - } - private static Int64 NextLevelXP(int level) - { - return (level * level) + 2 * level + 75; - } - - public static (bool, int) MessageSent(ulong id, int messageLength) - { - WaitForTimeToRemoveFromList(id, 60); - - if (!File.Exists(Path.Combine(folder, id.ToString() + ".data"))) - { - SaveData(id, 0, 0, 0); - } - Int64 cEXp = GetExp(id); - Int64 rExp = GetReqEXP(id); - int random = new System.Random().Next(3, 6) + messageLength; - cEXp += random; - if (cEXp >= rExp) - { - cEXp = cEXp - rExp; - int lv = GetLevel(id); - rExp = NextLevelXP(lv); - lv++; - SaveData(id, lv, cEXp, rExp); - return (true, lv); - } - - SaveData(id, GetLevel(id), cEXp, rExp); - return (false, -1); - } - - public static async void WaitForTimeToRemoveFromList(ulong id, int time_seconds) - { - await Task.Delay(time_seconds * 1000); - playerMessages.Remove(id); - } - -} \ No newline at end of file diff --git a/CMD_LevelingSystem/Items/Leveling System/Data.cs b/CMD_LevelingSystem/Items/Leveling System/Data.cs deleted file mode 100644 index 44ffb76..0000000 --- a/CMD_LevelingSystem/Items/Leveling System/Data.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Discord.WebSocket; - -using System; -using System.IO; -public static class Data -{ - private static readonly string folder = @".\Data\Resources\LevelingSystem\"; - public static void registerPlayer(SocketGuildUser user) - { - ulong id = user.Id; - Directory.CreateDirectory(folder); - File.WriteAllText(Path.Combine(folder, id.ToString() + ".data"), "Level=0,EXP=0,REXP=100"); - } - - public static int GetLevel(ulong id) => int.Parse(File.ReadAllText(Path.Combine(folder, id.ToString() + ".data")).Split(',')[0].Split('=')[1]); - - - public static Int64 GetExp(ulong id) => Int64.Parse(File.ReadAllText(Path.Combine(folder, id.ToString() + ".data")).Split(',')[1].Split('=')[1]); - - - public static Int64 GetReqEXP(ulong id) => Int64.Parse(File.ReadAllText(Path.Combine(folder, id.ToString() + ".data")).Split(',')[2].Split('=')[1]); - - -} diff --git a/CMD_LevelingSystem/Level.cs b/CMD_LevelingSystem/Level.cs new file mode 100644 index 0000000..85b341f --- /dev/null +++ b/CMD_LevelingSystem/Level.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Discord; +using Discord.Commands; +using Discord.WebSocket; +using PluginManager; +using PluginManager.Interfaces; +using PluginManager.Others; + +namespace CMD_LevelingSystem +{ + internal class Level : DBCommand + { + public string Command => "level"; + + public string Description => "Display tour current level"; + + public string Usage => "level"; + + public bool canUseDM => false; + + public bool canUseServer => true; + + public bool requireAdmin => false; + + public async void Execute(SocketCommandContext context, SocketMessage message, DiscordSocketClient client, bool isDM) + { + User user = await Functions.ConvertFromJson(Config.GetValue("LevelingSystemPath") + $"/{message.Author.Id}.dat"); + if (user == null) + { + await context.Channel.SendMessageAsync("You are now unranked !"); + return; + } + + var builder = new EmbedBuilder(); + Random r = new Random(); + builder.WithColor(r.Next(256), r.Next(256), r.Next(256)); + builder.AddField("Current Level", user.CurrentLevel, true) + .AddField("Current EXP", user.CurrentEXP, true) + .AddField("Required Exp", user.RequiredEXPToLevelUp, true); + builder.WithTimestamp(DateTimeOffset.Now); + await context.Channel.SendMessageAsync(embed: builder.Build()); + } + } +} diff --git a/CMD_LevelingSystem/User.cs b/CMD_LevelingSystem/User.cs new file mode 100644 index 0000000..679a5d5 --- /dev/null +++ b/CMD_LevelingSystem/User.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CMD_LevelingSystem +{ + public class User + { + public string userID { get; set; } + public int CurrentLevel { get; set; } + public Int64 CurrentEXP { get; set; } + public Int64 RequiredEXPToLevelUp { get; set; } + } +} diff --git a/DiscordBot/Discord/Commands/Settings.cs b/DiscordBot/Discord/Commands/Settings.cs index 4b867f3..aaea6a5 100644 --- a/DiscordBot/Discord/Commands/Settings.cs +++ b/DiscordBot/Discord/Commands/Settings.cs @@ -3,12 +3,10 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; - using Discord; using Discord.Commands; using Discord.WebSocket; - -using PluginManager.Core; +using DiscordBot.Discord.Core; using PluginManager.Interfaces; using PluginManager.Others; using PluginManager.Others.Permissions; diff --git a/DiscordBot/Discord/Core/Boot.cs b/DiscordBot/Discord/Core/Boot.cs index af12058..b7a56b1 100644 --- a/DiscordBot/Discord/Core/Boot.cs +++ b/DiscordBot/Discord/Core/Boot.cs @@ -1,13 +1,14 @@ using Discord; using Discord.Commands; using Discord.WebSocket; - using System; +using System.Threading; using System.Threading.Tasks; - +using PluginManager; +using PluginManager.Others; using static PluginManager.Others.Functions; -namespace PluginManager.Core +namespace DiscordBot.Discord.Core { internal class Boot { @@ -107,6 +108,17 @@ namespace PluginManager.Core { Console.Title = "ONLINE"; isReady = true; + + new Thread(async () => + { + while (true) + { + Config.SaveDictionary(); + Thread.Sleep(10000); + } + } + ).Start(); + return Task.CompletedTask; } diff --git a/DiscordBot/Discord/Core/CommandHandler.cs b/DiscordBot/Discord/Core/CommandHandler.cs index b877f79..16ed690 100644 --- a/DiscordBot/Discord/Core/CommandHandler.cs +++ b/DiscordBot/Discord/Core/CommandHandler.cs @@ -13,7 +13,7 @@ using System.Linq; using Discord; using System; -namespace PluginManager.Core +namespace DiscordBot.Discord.Core { internal class CommandHandler { diff --git a/DiscordBot/Program.cs b/DiscordBot/Program.cs index 903d078..ad8ef96 100644 --- a/DiscordBot/Program.cs +++ b/DiscordBot/Program.cs @@ -1,15 +1,12 @@ -using Discord; -using System; -using System.IO; -using System.Threading.Tasks; -using PluginManager.Core; -using PluginManager.Others; -using PluginManager.LanguageSystem; -using PluginManager.Online; -using System.Collections.Generic; -using System.Linq; -using System.Threading; +using DiscordBot.Discord.Core; +using PluginManager; using PluginManager.Items; +using PluginManager.Others; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Threading.Tasks; namespace DiscordBot { @@ -17,8 +14,8 @@ namespace DiscordBot { private static bool loadPluginsOnStartup = false; private static bool listPluginsAtStartup = false; + private static bool listLanguagAtStartup = false; - //private static bool ShowStartupMessage = true; /// /// The main entry point for the application. @@ -31,28 +28,38 @@ namespace DiscordBot Directory.CreateDirectory("./Data/Languages"); Directory.CreateDirectory("./Data/Plugins/Commands"); Directory.CreateDirectory("./Data/Plugins/Events"); - Directory.CreateDirectory("./Data/runtime"); - - AppDomain.CurrentDomain.AppendPrivatePath("./Data/runtime"); - - if (!File.Exists("./Data/Resources/DiscordBotCore.data") || (Functions.readCodeFromFile("./Data/Resources/DiscordBotCore.data", "BOT_TOKEN", '=').Length != 59 && Functions.readCodeFromFile("./Data/Resources/DiscordBotCore.data", "BOT_TOKEN", '=').Length != 70)) + if (File.Exists(Functions.dataFolder + "var.dat")) + Config.LoadDictionary(); + else if (Config.GetValue("token") == null || Config.GetValue("token")?.Length != 70) { - File.WriteAllText("./Data/Resources/DiscordBotCore.data", "BOT_TOKEN=token\nBOT_PREFIX=!\n"); + Dictionary d = new Dictionary(); while (true) { - Console.WriteLine("Please insert your token: "); - Console.Write("TOKEN: "); - string botToken = Console.ReadLine(); - if (botToken.Length == 59 || botToken.Length == 70) - { - string prefix = Functions.readCodeFromFile("./Data/Resources/DiscordBotCore.data", "BOT_PREFIX", '='); - if (prefix == string.Empty || prefix == null) prefix = "!"; - File.WriteAllText("./Data/Resources/DiscordBotCore.data", $"BOT_TOKEN={botToken}\nBOT_PREFIX={prefix}\n"); - break; - } + Console.WriteLine("Please insert your token"); + Console.Write("Token = "); + string token = Console.ReadLine(); + if (token?.Length == 59 || token?.Length == 70) + d.Add("token", token); else - Console.WriteLine("Invalid Token !"); + { + Console.WriteLine("Invalid token"); + continue; + } + + Console.WriteLine("Please insert your prefix (max. 1 character long):"); + Console.WriteLine("For a prefix longer then one character, the first character will be saved and the others will be ignored. No spaces or numbers allowed"); + Console.Write("Prefix = "); + char prefix = Console.ReadLine()[0]; + + if (prefix == ' ' || char.IsDigit(prefix)) continue; + + d.Add("prefix", prefix.ToString()); + + break; } + + Config.AppendToDictionary(d); + d.Clear(); } HandleInput(args).Wait(); @@ -61,11 +68,10 @@ namespace DiscordBot /// /// Reset all settings for the bot /// - private static Task ResetSettings() + private static async Task ResetSettings() { string[] files = Directory.GetFiles(@"./Data/Resources"); foreach (string file in files) File.Delete(file); - return Task.CompletedTask; } /// @@ -74,13 +80,11 @@ namespace DiscordBot /// The discord booter used to start the application private static Task NoGUI(Boot discordbooter) { - Language.LoadLanguage(); - ConsoleCommandsHandler consoleCommandsHandler = new ConsoleCommandsHandler(discordbooter.client); if (loadPluginsOnStartup) consoleCommandsHandler.HandleCommand("lp"); if (listPluginsAtStartup) consoleCommandsHandler.HandleCommand("listplugs"); if (listLanguagAtStartup) consoleCommandsHandler.HandleCommand("listlang"); - + Config.SaveDictionary(); while (true) { Console.ForegroundColor = ConsoleColor.White; @@ -102,8 +106,8 @@ namespace DiscordBot Console.ForegroundColor = ConsoleColor.White; Console.WriteLine("============================ Discord BOT - Cross Platform ============================"); - string token = Functions.readCodeFromFile(Functions.dataFolder + "DiscordBotCore.data", "BOT_TOKEN", '='); - string prefix = Functions.readCodeFromFile(Functions.dataFolder + "DiscordBotCore.data", "BOT_PREFIX", '='); + string token = Config.GetValue("token"); + string prefix = Config.GetValue("prefix"); var discordbooter = new Boot(token, prefix); await discordbooter.Awake(); @@ -133,15 +137,6 @@ namespace DiscordBot /// The arguments private static async Task HandleInput(string[] args) { - if (args.Length == 0) - { - if (File.Exists("./ref/startupArguments.txt")) - { - var lines = await File.ReadAllLinesAsync("./ref/startupArguments.txt"); - args = lines; - } - } - int len = args.Length; if (len == 1 && args[0] == "--help") { @@ -151,12 +146,13 @@ namespace DiscordBot if (len == 1 && args[0] == "--logout") { - File.Delete(Functions.dataFolder + "DiscordBotCore.dat"); + File.Delete(Functions.dataFolder + "var.dat"); await Task.Run(async () => - { - await Task.Delay(1000); - Environment.Exit(0x08); - }); + { + await Task.Delay(1000); + Environment.Exit(0x08); + } + ); return; } @@ -226,7 +222,6 @@ namespace DiscordBot await ClearFolder("./Output/Logs/"); await ClearFolder("./Output/Errors"); await ClearFolder("./Data/Languages/"); - await ClearFolder("./Data/Plugins/Addons"); await ClearFolder("./Data/Plugins/Commands"); await ClearFolder("./Data/Plugins/Events"); Console.WriteLine("Successfully cleared all folders"); diff --git a/DiscordBotGUI/AppUpdater.axaml.cs b/DiscordBotGUI/AppUpdater.axaml.cs index 785e1d4..f6eaf5c 100644 --- a/DiscordBotGUI/AppUpdater.axaml.cs +++ b/DiscordBotGUI/AppUpdater.axaml.cs @@ -7,8 +7,6 @@ using System.Threading.Tasks; using System; using System.IO; using System.Threading; -using System.Drawing; -using Avalonia.Media; namespace DiscordBotGUI { diff --git a/DiscordBotGUI/MainWindow.axaml.cs b/DiscordBotGUI/MainWindow.axaml.cs index 00490b6..081a81e 100644 --- a/DiscordBotGUI/MainWindow.axaml.cs +++ b/DiscordBotGUI/MainWindow.axaml.cs @@ -1,13 +1,12 @@ using Avalonia.Controls; - using System.Threading.Tasks; - using PluginManager.Others; using System.IO; using System; using System.Diagnostics; using DiscordBotGUI.Settings; using Avalonia.Themes.Fluent; +using PluginManager; namespace DiscordBotGUI { @@ -27,8 +26,7 @@ namespace DiscordBotGUI textBox3.Watermark = "Insert start arguments"; - if (File.Exists("./Version.txt")) - label5.Content = Functions.readCodeFromFile("./Version.txt", "DiscordBotVersion", '='); + if (File.Exists("./Version.txt")) label5.Content = Config.ApplicationVariables["Version"] as string; button1.Click += async (sender, e) => { @@ -58,8 +56,8 @@ namespace DiscordBotGUI Directory.CreateDirectory(Functions.dataFolder); try { - string? botToken = Functions.readCodeFromFile(folder, "BOT_TOKEN", '='); - string? botPrefix = Functions.readCodeFromFile(folder, "BOT_PREFIX", '='); + string? botToken = Config.ApplicationVariables["token"] as string; + string? botPrefix = Config.ApplicationVariables["prefix"] as string; if (botToken == null || botPrefix == null) { textBox1.IsReadOnly = false; diff --git a/DiscordBotWithAPI.sln b/DiscordBotWithAPI.sln index 7bf0ffe..d88b05a 100644 --- a/DiscordBotWithAPI.sln +++ b/DiscordBotWithAPI.sln @@ -13,17 +13,15 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Events", "Events", "{A290C0 EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Commands", "Commands", "{449FA364-0B72-43FF-B3A3-806E2916200E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMD_LevelingSystem", "CMD_LevelingSystem\CMD_LevelingSystem.csproj", "{A48E8DC6-DBA2-4B47-9D59-46F4835F82CC}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EVE_LevelingSystem", "EVE_LevelingSystem\EVE_LevelingSystem.csproj", "{1C1E7F3D-E05A-4A87-9789-62D98904C200}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StartupEvents", "StartupEvents\StartupEvents.csproj", "{CE9DBF06-38A0-4192-8B3E-4009210D040D}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CMD_Utils", "CMD_Utils\CMD_Utils.csproj", "{E26C87A4-3DD6-4B58-B14B-C8E086B852F9}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MusicCommands", "MusicCommands\MusicCommands.csproj", "{B1B4976E-5112-4217-B57B-3A03C5207B6E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DiscordBotGUI", "DiscordBotGUI\DiscordBotGUI.csproj", "{7B5899F0-0218-4537-8C74-6210ED2D3690}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DiscordBotGUI", "DiscordBotGUI\DiscordBotGUI.csproj", "{7B5899F0-0218-4537-8C74-6210ED2D3690}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EVE_LevelingSystem", "EVE_LevelingSystem\EVE_LevelingSystem.csproj", "{EEC445DC-0C4B-43EA-8694-606BA0390B77}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CMD_LevelingSystem", "CMD_LevelingSystem\CMD_LevelingSystem.csproj", "{1A4E49FF-9A0A-4C54-AF35-CFFBA64353D9}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -39,18 +37,6 @@ Global {EDD4D9B3-98DD-4367-A09F-D1C5ACB61132}.Debug|Any CPU.Build.0 = Debug|Any CPU {EDD4D9B3-98DD-4367-A09F-D1C5ACB61132}.Release|Any CPU.ActiveCfg = Release|Any CPU {EDD4D9B3-98DD-4367-A09F-D1C5ACB61132}.Release|Any CPU.Build.0 = Release|Any CPU - {A48E8DC6-DBA2-4B47-9D59-46F4835F82CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A48E8DC6-DBA2-4B47-9D59-46F4835F82CC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A48E8DC6-DBA2-4B47-9D59-46F4835F82CC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A48E8DC6-DBA2-4B47-9D59-46F4835F82CC}.Release|Any CPU.Build.0 = Release|Any CPU - {1C1E7F3D-E05A-4A87-9789-62D98904C200}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1C1E7F3D-E05A-4A87-9789-62D98904C200}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1C1E7F3D-E05A-4A87-9789-62D98904C200}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1C1E7F3D-E05A-4A87-9789-62D98904C200}.Release|Any CPU.Build.0 = Release|Any CPU - {CE9DBF06-38A0-4192-8B3E-4009210D040D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CE9DBF06-38A0-4192-8B3E-4009210D040D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CE9DBF06-38A0-4192-8B3E-4009210D040D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CE9DBF06-38A0-4192-8B3E-4009210D040D}.Release|Any CPU.Build.0 = Release|Any CPU {E26C87A4-3DD6-4B58-B14B-C8E086B852F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {E26C87A4-3DD6-4B58-B14B-C8E086B852F9}.Debug|Any CPU.Build.0 = Debug|Any CPU {E26C87A4-3DD6-4B58-B14B-C8E086B852F9}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -63,6 +49,14 @@ Global {7B5899F0-0218-4537-8C74-6210ED2D3690}.Debug|Any CPU.Build.0 = Debug|Any CPU {7B5899F0-0218-4537-8C74-6210ED2D3690}.Release|Any CPU.ActiveCfg = Release|Any CPU {7B5899F0-0218-4537-8C74-6210ED2D3690}.Release|Any CPU.Build.0 = Release|Any CPU + {EEC445DC-0C4B-43EA-8694-606BA0390B77}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EEC445DC-0C4B-43EA-8694-606BA0390B77}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EEC445DC-0C4B-43EA-8694-606BA0390B77}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EEC445DC-0C4B-43EA-8694-606BA0390B77}.Release|Any CPU.Build.0 = Release|Any CPU + {1A4E49FF-9A0A-4C54-AF35-CFFBA64353D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1A4E49FF-9A0A-4C54-AF35-CFFBA64353D9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1A4E49FF-9A0A-4C54-AF35-CFFBA64353D9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1A4E49FF-9A0A-4C54-AF35-CFFBA64353D9}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -70,11 +64,10 @@ Global GlobalSection(NestedProjects) = preSolution {A290C028-77C4-4D1D-AB43-DDFE6ABD9012} = {1862ABD5-7C30-4F15-A561-45AC8A9CA10E} {449FA364-0B72-43FF-B3A3-806E2916200E} = {1862ABD5-7C30-4F15-A561-45AC8A9CA10E} - {A48E8DC6-DBA2-4B47-9D59-46F4835F82CC} = {449FA364-0B72-43FF-B3A3-806E2916200E} - {1C1E7F3D-E05A-4A87-9789-62D98904C200} = {A290C028-77C4-4D1D-AB43-DDFE6ABD9012} - {CE9DBF06-38A0-4192-8B3E-4009210D040D} = {A290C028-77C4-4D1D-AB43-DDFE6ABD9012} {E26C87A4-3DD6-4B58-B14B-C8E086B852F9} = {449FA364-0B72-43FF-B3A3-806E2916200E} {B1B4976E-5112-4217-B57B-3A03C5207B6E} = {449FA364-0B72-43FF-B3A3-806E2916200E} + {EEC445DC-0C4B-43EA-8694-606BA0390B77} = {A290C028-77C4-4D1D-AB43-DDFE6ABD9012} + {1A4E49FF-9A0A-4C54-AF35-CFFBA64353D9} = {449FA364-0B72-43FF-B3A3-806E2916200E} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {3FB3C5DE-ED21-4D2E-ABDD-3A00EE4A2FFF} diff --git a/EVE_LevelingSystem/Core.cs b/EVE_LevelingSystem/Core.cs deleted file mode 100644 index 10314f4..0000000 --- a/EVE_LevelingSystem/Core.cs +++ /dev/null @@ -1,62 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Threading.Tasks; - -public class Core -{ - - public static Dictionary playerMessages = new Dictionary(); - - private static readonly string folder = @".\Data\Resources\LevelingSystem\"; - - public static int GetLevel(ulong id) => int.Parse(File.ReadAllText(Path.Combine(folder, id.ToString() + ".data")).Split(',')[0].Split('=')[1]); - - - public static Int64 GetExp(ulong id) => Int64.Parse(File.ReadAllText(Path.Combine(folder, id.ToString() + ".data")).Split(',')[1].Split('=')[1]); - - - public static Int64 GetReqEXP(ulong id) => Int64.Parse(File.ReadAllText(Path.Combine(folder, id.ToString() + ".data")).Split(',')[2].Split('=')[1]); - public static void SaveData(ulong id, int lv, Int64 cexp, Int64 rexp) - { - Directory.CreateDirectory(folder); - File.WriteAllText(Path.Combine(folder, id.ToString() + ".data"), $"Level={lv},EXP={cexp},REXP={rexp}"); - } - private static Int64 NextLevelXP(int level) - { - return (level * level) + 2 * level + 75; - } - - public static (bool, int) MessageSent(ulong id, int messageLength) - { - WaitForTimeToRemoveFromList(id, 60); - - if (!File.Exists(Path.Combine(folder, id.ToString() + ".data"))) - { - SaveData(id, 0, 0, 0); - } - Int64 cEXp = GetExp(id); - Int64 rExp = GetReqEXP(id); - int random = new System.Random().Next(3, 6) + messageLength; - cEXp += random; - if (cEXp >= rExp) - { - cEXp = cEXp - rExp; - int lv = GetLevel(id); - rExp = NextLevelXP(lv); - lv++; - SaveData(id, lv, cEXp, rExp); - return (true, lv); - } - - SaveData(id, GetLevel(id), cEXp, rExp); - return (false, -1); - } - - public static async void WaitForTimeToRemoveFromList(ulong id, int time_seconds) - { - await Task.Delay(time_seconds * 1000); - playerMessages.Remove(id); - } - -} \ No newline at end of file diff --git a/EVE_LevelingSystem/Data.cs b/EVE_LevelingSystem/Data.cs deleted file mode 100644 index 44ffb76..0000000 --- a/EVE_LevelingSystem/Data.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Discord.WebSocket; - -using System; -using System.IO; -public static class Data -{ - private static readonly string folder = @".\Data\Resources\LevelingSystem\"; - public static void registerPlayer(SocketGuildUser user) - { - ulong id = user.Id; - Directory.CreateDirectory(folder); - File.WriteAllText(Path.Combine(folder, id.ToString() + ".data"), "Level=0,EXP=0,REXP=100"); - } - - public static int GetLevel(ulong id) => int.Parse(File.ReadAllText(Path.Combine(folder, id.ToString() + ".data")).Split(',')[0].Split('=')[1]); - - - public static Int64 GetExp(ulong id) => Int64.Parse(File.ReadAllText(Path.Combine(folder, id.ToString() + ".data")).Split(',')[1].Split('=')[1]); - - - public static Int64 GetReqEXP(ulong id) => Int64.Parse(File.ReadAllText(Path.Combine(folder, id.ToString() + ".data")).Split(',')[2].Split('=')[1]); - - -} diff --git a/EVE_LevelingSystem/EVE_LevelingSystem.csproj b/EVE_LevelingSystem/EVE_LevelingSystem.csproj index 0f762e8..ce1a63c 100644 --- a/EVE_LevelingSystem/EVE_LevelingSystem.csproj +++ b/EVE_LevelingSystem/EVE_LevelingSystem.csproj @@ -1,17 +1,20 @@ - + - - net6.0 - + + net6.0 + enable + enable + ..\DiscordBot\bin\Debug\net6.0\Data\Plugins\Events\LevelingSystem + - - ..\BUILDS\ - none - false - + + + + + - - - + + + diff --git a/EVE_LevelingSystem/Level.cs b/EVE_LevelingSystem/Level.cs new file mode 100644 index 0000000..2d9b6bd --- /dev/null +++ b/EVE_LevelingSystem/Level.cs @@ -0,0 +1,42 @@ +using Discord.WebSocket; +using EVE_LevelingSystem.LevelingSystemCore; +using PluginManager; +using PluginManager.Interfaces; +using PluginManager.Others; + +namespace EVE_LevelingSystem +{ + internal class Level : DBEvent + { + public string name => "Leveling System Event Handler"; + public string description => "The Leveling System Event Handler"; + + + public void Start(DiscordSocketClient client) + { + Directory.CreateDirectory("./Data/Resources/LevelingSystem"); + Config.AddValueToVariables("LevelingSystemPath", "./Data/Resources/LevelingSystem"); + + client.MessageReceived += ClientOnMessageReceived; + } + + private async Task ClientOnMessageReceived(SocketMessage arg) + { + if (arg.Author.IsBot || arg.IsTTS || arg.Content.StartsWith(Config.GetValue("prefix"))) return; + string userID = arg.Author.Id.ToString(); + User user; + if (File.Exists($"{Config.GetValue("LevelingSystemPath")}/{userID}.dat")) + { + user = await Functions.ConvertFromJson(Config.GetValue("LevelingSystemPath")! + $"/{userID}.dat"); + Console.WriteLine(Config.GetValue("LevelingSystemPath")); + if (user.AddEXP()) await arg.Channel.SendMessageAsync($"{arg.Author.Mention} is now level {user.CurrentLevel}"); + await Functions.SaveToJsonFile(Config.GetValue("LevelingSystemPath") + $"/{userID}.dat", user); + return; + } + + user = new User() { CurrentEXP = 0, CurrentLevel = 1, RequiredEXPToLevelUp = LevelCalculator.GetNextLevelRequiredEXP(1), userID = userID }; + if (user.AddEXP()) await arg.Channel.SendMessageAsync($"{arg.Author.Mention} is now level {user.CurrentLevel}"); + await Functions.SaveToJsonFile($"{Config.GetValue("LevelingSystemPath")}/{userID}.dat", user); + } + } +} diff --git a/EVE_LevelingSystem/LevelingSystem.cs b/EVE_LevelingSystem/LevelingSystem.cs deleted file mode 100644 index 674da2a..0000000 --- a/EVE_LevelingSystem/LevelingSystem.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System.Threading.Tasks; - -using Discord.WebSocket; - -using PluginManager.Others; -using PluginManager.Interfaces; -using PluginManager.LanguageSystem; -using PluginManager.Items; -using System; - -public class LevelingSystem : DBEvent -{ - public string name => "Leveling System"; - - public string description => "Leveling System Event"; - - public void Start(DiscordSocketClient client) - { - - ConsoleCommandsHandler.AddCommand("lvl", "Test command", async (args) => - { - Console.WriteLine("Leveling system command"); - - }); - - client.MessageReceived += Client_MessageReceived; - } - - private async Task Client_MessageReceived(SocketMessage arg) - { - if (arg.Author.IsBot || arg.Attachments.Count > 0 || - arg.Content.StartsWith - ( - Functions.readCodeFromFile - ( - fileName: System.IO.Path.Combine(Functions.dataFolder, "DiscordBotCore.data"), - Code: "BOT_PREFIX", - separator: '=' - ) - ) - ) - return; - //Console_Utilities.WriteColorText("Message from : " + arg.Author.Username); - if (Core.playerMessages.ContainsKey(arg.Author.Id)) - return; - - (bool x, int lv) = Core.MessageSent(arg.Author.Id, arg.Content.Length); - Core.playerMessages.Add(arg.Author.Id, arg.Content); - if (x) - if (Language.ActiveLanguage != null) - await arg.Channel.SendMessageAsync(Language.ActiveLanguage.LanguageWords["DB_EVENT_LEVEL_SYSTEM_LEVEL_UP"].Replace("{0}", lv.ToString())); - else await arg.Channel.SendMessageAsync("You've successfully leveled up to level " + lv); - - } -} - diff --git a/EVE_LevelingSystem/LevelingSystemCore/LevelCalculator.cs b/EVE_LevelingSystem/LevelingSystemCore/LevelCalculator.cs new file mode 100644 index 0000000..9df66dc --- /dev/null +++ b/EVE_LevelingSystem/LevelingSystemCore/LevelCalculator.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace EVE_LevelingSystem.LevelingSystemCore +{ + internal static class LevelCalculator + { + internal static List OnWaitingList = new(); + + internal static Int64 GetNextLevelRequiredEXP(int currentLevel) + { + return currentLevel * 8 + 24; + } + + internal static void LevelUp(this User user) + { + user.CurrentEXP = 0; + user.RequiredEXPToLevelUp = GetNextLevelRequiredEXP(user.CurrentLevel); + user.CurrentLevel++; + } + + internal static bool AddEXP(this User user) + { + if (OnWaitingList.Contains(user.userID)) return false; + Random r = new Random(); + int exp = r.Next(2, 12); + Int64 userXP = user.CurrentEXP; + Int64 reqEXP = user.RequiredEXPToLevelUp; + if (userXP + exp >= reqEXP) + { + user.LevelUp(); + user.CurrentEXP = exp - (reqEXP - userXP); + Console.WriteLine("Level up"); + return true; + } + + user.CurrentEXP += exp; + + OnWaitingList.Add(user.userID); + + + new Thread(() => + { + int minutesToWait = 0; + Thread.Sleep(60000 * minutesToWait); + OnWaitingList.Remove(user.userID); + } + ); + + return false; + } + } +} diff --git a/EVE_LevelingSystem/LevelingSystemCore/User.cs b/EVE_LevelingSystem/LevelingSystemCore/User.cs new file mode 100644 index 0000000..0ccb094 --- /dev/null +++ b/EVE_LevelingSystem/LevelingSystemCore/User.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace EVE_LevelingSystem.LevelingSystemCore +{ + public class User + { + public string userID { get; set; } + public int CurrentLevel { get; set; } + public Int64 CurrentEXP { get; set; } + public Int64 RequiredEXPToLevelUp { get; set; } + } +} diff --git a/FreeGames/Game.cs b/FreeGames/Game.cs deleted file mode 100644 index 7080383..0000000 --- a/FreeGames/Game.cs +++ /dev/null @@ -1,32 +0,0 @@ -using PluginManager.Interfaces; -using PluginManager.Items; -using Games.Objects; -using PluginManager.Others; - -namespace Games; - -public class Game : DBCommand -{ - public string Command => "game"; - public string Description => "Display info about the specified game"; - public string Usage => "game "; - - public bool canUseDM => false; - public bool canUseServer => true; - public bool requireAdmin => false; - - public async void Execute(Discord.Commands.SocketCommandContext context, Discord.WebSocket.SocketMessage message, - Discord.WebSocket.DiscordSocketClient client, bool isDM) - { - - string game_name = Functions.MergeStrings(message.Content.Split(' '), 1); - string game_url = await GameData.GetSteamLinkFromGame(game_name); - if (game_url is null || game_url == null) - { - await message.Channel.SendMessageAsync("Could not find the game. Try to be more specific or check for spelling errors."); - return; - } - await context.Channel.SendMessageAsync(game_url); - } - -} diff --git a/FreeGames/Games.csproj b/FreeGames/Games.csproj deleted file mode 100644 index 7afa3af..0000000 --- a/FreeGames/Games.csproj +++ /dev/null @@ -1,19 +0,0 @@ - - - - net6.0 - enable - enable - - - - - - - - - - - - - diff --git a/FreeGames/Objects/GameData.cs b/FreeGames/Objects/GameData.cs deleted file mode 100644 index 1156127..0000000 --- a/FreeGames/Objects/GameData.cs +++ /dev/null @@ -1,24 +0,0 @@ -using PluginManager.Online; -namespace Games.Objects; - -public class GameData -{ - internal async static Task GetSteamLinkFromGame(string GameName) - { - string URL = $"https://store.steampowered.com/search?term={GameName.Replace(" ", "+")}"; - List lines = await ServerCom.ReadTextFromFile(URL); - - string? gameData = ( - from s in lines - where s.Contains(GameName.Replace(" ", "_"), StringComparison.OrdinalIgnoreCase) - select s).FirstOrDefault(); - if (gameData is null) return null; - string GameURL = gameData.Split('\"')[1].Split('?')[0]; - - if (GameURL == "menuitem") - return null; - - return GameURL; - - } -} diff --git a/PluginManager/Config.cs b/PluginManager/Config.cs new file mode 100644 index 0000000..3dac456 --- /dev/null +++ b/PluginManager/Config.cs @@ -0,0 +1,87 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; +using PluginManager.Others; + +namespace PluginManager +{ + public static class Config + { + private static readonly Dictionary ApplicationVariables = new(); + private static readonly List ConstantTokens = new() { "token" }; + + public static void AppendToDictionary(Dictionary dictionary) + { + foreach (var kvp in dictionary) ApplicationVariables.TryAdd(kvp.Key, kvp.Value); + } + + public static bool AddValueToVariables(string key, string value, bool constant) + { + bool req = AddValueToVariables(key, value); + if (constant) ConstantTokens.Add(key); + + return req; + } + + public static bool AddValueToVariables(string key, string value) + { + if (ApplicationVariables.ContainsKey(key)) + { + return false; + } + + ApplicationVariables.Add(key, value); + return true; + } + + public static string? GetValue(string key) + { + if (!ApplicationVariables.ContainsKey(key)) + { + if (key != "token") Console.WriteLine("The key is not present in the dictionary"); + return null; + } + + return ApplicationVariables[key]; + } + + public static bool SetValue(string key, string value) + { + if (!ApplicationVariables.ContainsKey(key)) return false; + + if (ConstantTokens.Contains(key)) return false; + ApplicationVariables[key] = value; + return true; + } + + public static bool RemoveKey(string key) + { + if (ConstantTokens.Contains(key)) return false; + + + ApplicationVariables.Remove(key); + return true; + } + + public static async void SaveDictionary() + { + string path = Functions.dataFolder + "var.dat"; + await Functions.SaveToJsonFile(path, ApplicationVariables); + } + + public static async void LoadDictionary() + { + string path = Functions.dataFolder + "var.dat"; + var d = await Functions.ConvertFromJson>(path); + ApplicationVariables.Clear(); + AppendToDictionary(d); + } + + public static string GetKey(string value) => ApplicationVariables.Keys.FirstOrDefault(x => ApplicationVariables[x] == value); + public static bool ContainsValue(string value) => ApplicationVariables.ContainsValue(value); + public static bool ContainsKey(string key) => ApplicationVariables.ContainsKey(key); + } +} diff --git a/PluginManager/Items/ConsoleCommandsHandler.cs b/PluginManager/Items/ConsoleCommandsHandler.cs index 30a8c7a..95841b8 100644 --- a/PluginManager/Items/ConsoleCommandsHandler.cs +++ b/PluginManager/Items/ConsoleCommandsHandler.cs @@ -1,16 +1,12 @@ using Discord.WebSocket; - using PluginManager.Loaders; using PluginManager.Online; using PluginManager.Others; - - using System; using System.Collections.Generic; using System.Diagnostics; using System.Threading.Tasks; using System.Threading; -using PluginManager.LanguageSystem; using System.Linq; using System.Reflection.Metadata.Ecma335; @@ -18,13 +14,10 @@ namespace PluginManager.Items { public class ConsoleCommandsHandler { - - private static PluginsManager manager = new PluginsManager("https://sethdiscordbot.000webhostapp.com/Storage/Discord%20Bot/Plugins"); - private static LanguageManager languageManager = new LanguageManager("https://sethdiscordbot.000webhostapp.com/Storage/Discord%20Bot/Languages"); - + private static PluginsManager manager = new("https://sethdiscordbot.000webhostapp.com/Storage/Discord%20Bot/Plugins"); public static List>>? commandList = new List>>(); - private DiscordSocketClient client; + private DiscordSocketClient client; public ConsoleCommandsHandler(DiscordSocketClient client) { @@ -73,14 +66,9 @@ namespace PluginManager.Items if (name == null || name.Length < 2) name = typeName; if (success) - if (LanguageSystem.Language.ActiveLanguage == null) - Console.WriteLine("[CMD] Successfully loaded command : " + name); - else Console.WriteLine(LanguageSystem.Language.ActiveLanguage.FormatText(LanguageSystem.Language.ActiveLanguage.LanguageWords["COMMAND_LOAD_SUCCESS"], name)); + Console.WriteLine("[CMD] Successfully loaded command : " + name); else - if (LanguageSystem.Language.ActiveLanguage == null) Console.WriteLine("[CMD] Failed to load command : " + name + " because " + exception.Message); - else - Console.WriteLine(LanguageSystem.Language.ActiveLanguage.FormatText(LanguageSystem.Language.ActiveLanguage.LanguageWords["COMMAND_LOAD_FAIL"], name, exception.Message)); Console.ForegroundColor = ConsoleColor.Red; }; loader.onEVELoad += (name, typeName, success, exception) => @@ -89,15 +77,9 @@ namespace PluginManager.Items name = typeName; Console.ForegroundColor = ConsoleColor.Green; if (success) - if (LanguageSystem.Language.ActiveLanguage == null) - Console.WriteLine("[EVENT] Successfully loaded event : " + name); - else - Console.WriteLine(LanguageSystem.Language.ActiveLanguage.FormatText(LanguageSystem.Language.ActiveLanguage.LanguageWords["EVENT_LOAD_SUCCESS"], name)); + Console.WriteLine("[EVENT] Successfully loaded event : " + name); else - if (LanguageSystem.Language.ActiveLanguage == null) Console.WriteLine("[EVENT] Failed to load event : " + name + " because " + exception.Message); - else - Console.WriteLine(LanguageSystem.Language.ActiveLanguage.FormatText(LanguageSystem.Language.ActiveLanguage.LanguageWords["EVENT_LOAD_FAIL"], name, exception.Message)); Console.ForegroundColor = ConsoleColor.Red; }; loader.LoadPlugins(); @@ -205,75 +187,47 @@ namespace PluginManager.Items }); - AddCommand("setlang", "set language", (args) => - { - if (args.Length == 1) + + AddCommand("value", "read value from VariableStack", (args) => { - Console.WriteLine("Please specify language"); - return; + if (args.Length != 2) return; + if (!Config.ContainsKey(args[1])) return; + + string data = Config.GetValue(args[1]); + Console.WriteLine($"{args[1]} => {data}"); } - Language.SetLanguage(args[0]); - }); + ); - AddCommand("listlang", "List all available languages", async () => - { - await languageManager.ListAllLanguages(); - }); - - AddCommand("dwlang", "Download language", async (args) => - { - if (args.Length == 1) + AddCommand("addv", "add variable to the system variables", async (args) => { - Console.WriteLine("Please specify language"); - return; + if (args.Length < 3) return; + string in1 = args[1]; + if (!Config.ContainsKey(in1)) + Config.AddValueToVariables(in1, Functions.MergeStrings(args, 2)); + else + Config.SetValue(in1, Functions.MergeStrings(args, 2)); + + Console.WriteLine($"Updated config file with the following command: {in1} => {Config.GetValue(in1)}"); + Config.SaveDictionary(); } - string Lname = args.MergeStrings(1); - string[] link = await languageManager!.GetDownloadLink(Lname); - try + ); + + AddCommand("remv", "remove variable from system variables", (args) => { - if (link[0] is null || link is null) - { - if (Lname == "") - { - Console_Utilities.WriteColorText($"Name is invalid"); - return; - } - Console_Utilities.WriteColorText("Failed to find language &b" + Lname + " &c! Use &glistlang &ccommand to display all available languages !"); - return; - } - if (link[1].Contains("CrossPlatform") || link[1].Contains("cp")) - { - - string path2 = Functions.langFolder + Lname + ".lng"; - - await ServerCom.DownloadFileAsync(link[0], path2); - Console.WriteLine("\n"); - } - else Console_Utilities.WriteColorText("The language you are trying to download (&b" + Lname + "&c) is not compatible with the version of this bot. User &glistlang &ccommand in order to see all available languages for your current version !\n" + link[1]); - return; + if (args.Length < 2) return; + Config.RemoveKey(args[1]); + Config.SaveDictionary(); } - catch + ); + + AddCommand("sd", "Shuts down the discord bot", async () => { - if (Lname == "") - { - Console_Utilities.WriteColorText($"Name is invalid"); - return; - } - Console_Utilities.WriteColorText("Failed to find language &b" + Lname + " &c! Use &glistlang &ccommand to display all available languages !"); - return; + await client.StopAsync(); + await client.DisposeAsync(); + Config.SaveDictionary(); + Environment.Exit(0); } - }); - - - AddCommand("token", "Display the token used by the bot", () => - { - if (System.IO.File.Exists("./Data/Resources/DiscordBotCore.data")) - Console.WriteLine("Token: " + Functions.readCodeFromFile("./Data/Resources/DiscordBotCore.data", "BOT_TOKEN", '=')); - else Console.WriteLine("File could not be found. Please register token"); - }); - - - + ); } public static void AddCommand(string command, string description, Action action) @@ -286,8 +240,6 @@ namespace PluginManager.Items public static void AddCommand(string command, string description, Action action) { AddCommand(command, description, (args) => action()); - - /* Console.WriteLine("Added command: " + command);*/ } public static void RemoveCommand(string command) diff --git a/PluginManager/Language System/Language.cs b/PluginManager/Language System/Language.cs deleted file mode 100644 index 732c4ae..0000000 --- a/PluginManager/Language System/Language.cs +++ /dev/null @@ -1,161 +0,0 @@ -using PluginManager.Others; -using System.Collections.Generic; - -using System; -using System.IO; -using System.Threading.Tasks; - -namespace PluginManager.LanguageSystem -{ - public class Language - { - /// - /// The active language - /// - public static Language? ActiveLanguage = null; - - private static readonly string LanguageFileExtension = ".lng"; - - /// - /// The name of the language - /// - public string LanguageName { get; } - - /// - /// The file where the language is imported from - /// - public string fileName { get; } - - /// - /// The dictionary of the language - /// - public Dictionary LanguageWords { get; } - - /// - /// The Language constructor - /// - /// The file to import the language from - /// The dictionary of the language - /// The name of the language - private Language(string fileName, Dictionary words, string LanguageName) - { - this.fileName = fileName; - this.LanguageName = LanguageName; - LanguageWords = words; - } - - /// - /// Load language from file - /// - /// The file path - /// - public static Language? CreateLanguageFromFile(string LanguageFileLocation) - { - if (!LanguageFileLocation.EndsWith(LanguageFileExtension)) - { - Console.WriteLine("Failed to load language from file: " + LanguageFileLocation + - "\nFile extension is not " + LanguageFileExtension); - return null; - } - - string[] lines = File.ReadAllLines(LanguageFileLocation); - var languageName = "Unknown"; - var words = new Dictionary(); - - foreach (string line in lines) - { - if (line.StartsWith("#") || line.Length < 4) - continue; - string[] sLine = line.Split('='); - - if (sLine[0] == "LANGUAGE_NAME") - { - languageName = sLine[1]; - continue; - } - - words.Add(sLine[0], sLine[1]); - } - - Functions.WriteLogFile("Successfully loaded language: " + languageName + " from file : " + - LanguageFileLocation.Replace('\\', '/')); - return new Language(LanguageFileLocation, words, languageName); - } - - /// - /// Format text by inserting parameters - /// - /// The raw text - /// The arguments - /// - public string FormatText(string text, params string[] args) - { - if (ActiveLanguage == null) return text; - int l = args.Length; - for (var i = 0; i < l; i++) text = text.Replace($"{i}", args[i]); - return text; - } - - - public static bool LoadLanguage() - { - string folder = Functions.langFolder; - string langSettings = "./Data/Resources/Language.txt"; - if (!File.Exists(langSettings)) - File.WriteAllText(langSettings, "Language=English"); - //Load language from the specified file ... - Language.ActiveLanguage = null; - - string langname = Functions.readCodeFromFile(langSettings, "Language", '='); - if (langname == "English") - { - Language.ActiveLanguage = null; - return true; - } - foreach (var file in Directory.GetFiles(folder)) - { - if (Functions.readCodeFromFile(file, "LANGUAGE_NAME", '=') == langname) - { - Language.ActiveLanguage = Language.CreateLanguageFromFile(file); - - return true; - } - } - - if (Language.ActiveLanguage == null) - { - File.WriteAllText(langSettings, "Language=English"); - Console_Utilities.WriteColorText($"Failed to find language &r{langname} &c! Check available languages using command: &glistlang"); - - return false; - } - - return false; - } - - public static void SetLanguage(string LanguageName) - { - string langSettings = Functions.dataFolder + "Language.txt"; - File.WriteAllText(langSettings, "Language=" + LanguageName); - - try - { - bool success = LoadLanguage(); - if (success) - { - Console_Utilities.WriteColorText($"Language has been setted to: &g{LanguageName}"); - return; - } - } - catch (Exception ex) - { - Console_Utilities.WriteColorText($"Could not find language &r{LanguageName}."); - Functions.WriteErrFile(ex.ToString()); - File.WriteAllText(langSettings, "Language=English"); - LoadLanguage(); - } - } - - - } -} \ No newline at end of file diff --git a/PluginManager/Loaders/Loader.cs b/PluginManager/Loaders/Loader.cs index 955bc9f..1b80c5d 100644 --- a/PluginManager/Loaders/Loader.cs +++ b/PluginManager/Loaders/Loader.cs @@ -41,7 +41,7 @@ namespace PluginManager.Loaders internal List? Load() { - List list = new List(); + List list = new List(); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); @@ -54,7 +54,14 @@ namespace PluginManager.Loaders Assembly.LoadFrom(file); if (FileLoaded != null) { - LoaderArgs args = new LoaderArgs() { Exception = null, TypeName = nameof(T), IsLoaded = false, PluginName = file, Plugin = null }; + LoaderArgs args = new LoaderArgs() + { + Exception = null, + TypeName = nameof(T), + IsLoaded = false, + PluginName = file, + Plugin = null + }; FileLoaded.Invoke(args); } } @@ -63,9 +70,9 @@ namespace PluginManager.Loaders { Type interfaceType = typeof(T); Type[] types = AppDomain.CurrentDomain.GetAssemblies() - .SelectMany(a => a.GetTypes()) - .Where(p => interfaceType.IsAssignableFrom(p) && p.IsClass) - .ToArray(); + .SelectMany(a => a.GetTypes()) + .Where(p => interfaceType.IsAssignableFrom(p) && p.IsClass) + .ToArray(); list.Clear(); @@ -77,15 +84,32 @@ namespace PluginManager.Loaders list.Add(plugin); - if (PluginLoaded != null) { PluginLoaded.Invoke(new() { Exception = null, IsLoaded = true, PluginName = type.FullName, TypeName = nameof(T), Plugin = plugin }); } + if (PluginLoaded != null) + { + PluginLoaded.Invoke(new() + { + Exception = null, + IsLoaded = true, + PluginName = type.FullName, + TypeName = nameof(T), + Plugin = plugin + } + ); + } } catch (Exception ex) { - if (PluginLoaded != null) { PluginLoaded.Invoke(new() { Exception = ex, IsLoaded = false, PluginName = type.FullName, TypeName = nameof(T) }); } + if (PluginLoaded != null) + { + PluginLoaded.Invoke(new() { Exception = ex, IsLoaded = false, PluginName = type.FullName, TypeName = nameof(T) }); + } } } } - catch (Exception ex) { Functions.WriteErrFile(ex.ToString()); } + catch (Exception ex) + { + Functions.WriteErrFile(ex.ToString()); + } return list; diff --git a/PluginManager/Loaders/PluginLoader.cs b/PluginManager/Loaders/PluginLoader.cs index 813ba1b..1236ddb 100644 --- a/PluginManager/Loaders/PluginLoader.cs +++ b/PluginManager/Loaders/PluginLoader.cs @@ -57,13 +57,7 @@ namespace PluginManager.Loaders Events = new List(); Functions.WriteLogFile("Starting plugin loader ... Client: " + _client.CurrentUser.Username); - if (LanguageSystem.Language.ActiveLanguage != null) - Console_Utilities.WriteColorText( - LanguageSystem.Language.ActiveLanguage.FormatText( - LanguageSystem.Language.ActiveLanguage.LanguageWords["PLUGIN_LOADING_START"] - ) - ); - + Console.WriteLine("Loading plugins"); Loader commandsLoader = new Loader(pluginCMDFolder, pluginCMDExtension); Loader eventsLoader = new Loader(pluginEVEFolder, pluginEVEExtension); diff --git a/PluginManager/Others/Functions.cs b/PluginManager/Others/Functions.cs index a87d603..6eef7e0 100644 --- a/PluginManager/Others/Functions.cs +++ b/PluginManager/Others/Functions.cs @@ -7,6 +7,8 @@ using System.Collections.Generic; using Discord.WebSocket; using PluginManager.Items; using System.Threading; +using System.Text.Json; +using System.Text; namespace PluginManager.Others { @@ -40,22 +42,6 @@ namespace PluginManager.Others /// public static readonly string pakFolder = @"./Data/Resources/PAKS/"; - /// - /// The mark that the line is a comment - /// - private static readonly char commentMark = '#'; - - /// - /// Read data from file - /// - /// File name - /// Setting name - /// Separator between setting key code and its value - /// The value of the specified setting key code in the specified file () - public static string? readCodeFromFile(string fileName, string Code, char separator) - => File.ReadAllLines(fileName) - .Where(p => p.StartsWith(Code) && !p.StartsWith(commentMark.ToString())) - .First().Split(separator)[1] ?? null; /// /// Read data from a file that is inside an archive (ZIP format) @@ -67,17 +53,16 @@ namespace PluginManager.Others { archFile = pakFolder + archFile; Directory.CreateDirectory(pakFolder); - if (!File.Exists(archFile)) - throw new FileNotFoundException("Failed to load file !"); + if (!File.Exists(archFile)) throw new FileNotFoundException("Failed to load file !"); string? textValue = null; - var fs = new FileStream(archFile, FileMode.Open); - var zip = new ZipArchive(fs, ZipArchiveMode.Read); + var fs = new FileStream(archFile, FileMode.Open); + var zip = new ZipArchive(fs, ZipArchiveMode.Read); foreach (var entry in zip.Entries) { if (entry.Name == FileName || entry.FullName == FileName) { - Stream s = entry.Open(); + Stream s = entry.Open(); StreamReader reader = new StreamReader(s); textValue = await reader.ReadToEndAsync(); reader.Close(); @@ -86,6 +71,7 @@ namespace PluginManager.Others break; } } + return textValue; } @@ -96,8 +82,7 @@ namespace PluginManager.Others public static void WriteLogFile(string LogMessage) { string logsPath = logFolder + "Log.txt"; - if (!Directory.Exists(logFolder)) - Directory.CreateDirectory(logFolder); + if (!Directory.Exists(logFolder)) Directory.CreateDirectory(logFolder); File.AppendAllText(logsPath, LogMessage + " \n"); } @@ -108,8 +93,7 @@ namespace PluginManager.Others public static void WriteErrFile(string ErrMessage) { string errPath = errFolder + "Error.txt"; - if (!Directory.Exists(errFolder)) - Directory.CreateDirectory(errFolder); + if (!Directory.Exists(errFolder)) Directory.CreateDirectory(errFolder); File.AppendAllText(errPath, ErrMessage + " \n"); } @@ -132,10 +116,10 @@ namespace PluginManager.Others File.AppendAllText(file, Code + separator + newValue + "\n"); ok = true; } - else File.AppendAllText(file, line + "\n"); + else + File.AppendAllText(file, line + "\n"); - if (!ok) - File.AppendAllText(file, Code + separator + newValue + "\n"); + if (!ok) File.AppendAllText(file, Code + separator + newValue + "\n"); } /// @@ -146,8 +130,8 @@ namespace PluginManager.Others /// A string built based on the array public static string MergeStrings(this string[] s, int indexToStart) { - string r = ""; - int len = s.Length; + string r = ""; + int len = s.Length; if (len <= indexToStart) return ""; for (int i = indexToStart; i < len - 1; ++i) { @@ -192,8 +176,7 @@ namespace PluginManager.Others int len = args.Length; if (len < 2) return; - for (int i = 0; i < len - 2; i++) - path += args[i] + "/"; + for (int i = 0; i < len - 2; i++) path += args[i] + "/"; path += args[len - 2] + ".txt"; @@ -215,20 +198,15 @@ namespace PluginManager.Others /// Triggered in is not writable public static async Task CopyToOtherStreamAsync(this Stream stream, Stream destination, int bufferSize, IProgress? progress = null, CancellationToken cancellationToken = default) { - if (stream == null) - throw new ArgumentNullException(nameof(stream)); - if (destination == null) - throw new ArgumentNullException(nameof(destination)); - if (bufferSize <= 0) - throw new ArgumentOutOfRangeException(nameof(bufferSize)); - if (!stream.CanRead) - throw new InvalidOperationException("The stream is not readable."); - if (!destination.CanWrite) - throw new ArgumentException("Destination stream is not writable", nameof(destination)); + if (stream == null) throw new ArgumentNullException(nameof(stream)); + if (destination == null) throw new ArgumentNullException(nameof(destination)); + if (bufferSize <= 0) throw new ArgumentOutOfRangeException(nameof(bufferSize)); + if (!stream.CanRead) throw new InvalidOperationException("The stream is not readable."); + if (!destination.CanWrite) throw new ArgumentException("Destination stream is not writable", nameof(destination)); - byte[] buffer = new byte[bufferSize]; - long totalBytesRead = 0; - int bytesRead; + byte[] buffer = new byte[bufferSize]; + long totalBytesRead = 0; + int bytesRead; while ((bytesRead = await stream.ReadAsync(buffer, 0, buffer.Length, cancellationToken).ConfigureAwait(false)) != 0) { await destination.WriteAsync(buffer, 0, bytesRead, cancellationToken).ConfigureAwait(false); @@ -246,15 +224,12 @@ namespace PluginManager.Others /// public static async Task ExtractArchive(string zip, string folder, IProgress progress) { - if (!Directory.Exists(folder)) - Directory.CreateDirectory(folder); - - + if (!Directory.Exists(folder)) Directory.CreateDirectory(folder); using (ZipArchive archive = ZipFile.OpenRead(zip)) { - int totalZIPFiles = archive.Entries.Count(); + int totalZIPFiles = archive.Entries.Count(); int currentZIPFile = 0; foreach (ZipArchiveEntry entry in archive.Entries) { @@ -262,8 +237,13 @@ namespace PluginManager.Others Directory.CreateDirectory(Path.Combine(folder, entry.FullName)); else - try { entry.ExtractToFile(Path.Combine(folder, entry.FullName), true); } - catch { } + try + { + entry.ExtractToFile(Path.Combine(folder, entry.FullName), true); + } + catch + { + } currentZIPFile++; await Task.Delay(10); @@ -281,5 +261,40 @@ namespace PluginManager.Others return (bytes / 1024.0 / 1024.0 / 1024.0, "GB"); } + + public static async Task SaveToJsonFile(string file, T Data) + { + string jsonText = JsonSerializer.Serialize(Data, typeof(T)); + await File.WriteAllTextAsync(file, jsonText); + } + + public static async Task ConvertFromJson(string input) + { + Stream text; + if (File.Exists(input)) + text = File.Open(input, FileMode.OpenOrCreate); + + else + text = new MemoryStream(Encoding.ASCII.GetBytes(input)); + text.Position = 0; + var obj = await JsonSerializer.DeserializeAsync(text); + text.Close(); + return obj; + } + + public static bool TryReadValueFromJson(string input, string codeName, out JsonElement element) + { + Stream text; + if (File.Exists(input)) + text = File.OpenRead(input); + + else + text = new MemoryStream(Encoding.ASCII.GetBytes(input)); + + var jsonObject = JsonDocument.Parse(text); + + var data = jsonObject.RootElement.TryGetProperty(codeName, out element); + return data; + } } } diff --git a/StartupEvents/OnUserJoin.cs b/StartupEvents/OnUserJoin.cs deleted file mode 100644 index bb4ff5f..0000000 --- a/StartupEvents/OnUserJoin.cs +++ /dev/null @@ -1,57 +0,0 @@ -using PluginManager.Others; -using PluginManager.Interfaces; -using Discord; - -public class OnUserJoin : DBEvent -{ - public string name => "OnPlayerJoin"; - - public string description => "An event that is triggered when an user joins the server"; - - private string UtilsPath = Functions.dataFolder + "/StartupEvents"; - private string ConfigFile = Functions.dataFolder + "/StartupEvents/" + "UserJoinEvent.txt"; - - public async void Start(Discord.WebSocket.DiscordSocketClient client) - { - - System.IO.Directory.CreateDirectory(UtilsPath); - - if (!System.IO.File.Exists(ConfigFile)) - { - await System.IO.File.WriteAllTextAsync(ConfigFile, - "Enabled=True\nEmbed=True\n" + - "#Available placeholders:\n" + - "#{user.Name} => Username of the user\n" + - "#{time.date} => Current Date\n" + - "#{time.time} => Current time (hh:mm::ss)\n" + - "MessageTitle = Welcome {user.Name}\n" + - "MessageDescription=Embed description\n" + - "MessageField1Title=Custom Title\n" + - "MessageFiled1Text=Custom Filed 1 text\n" + - "MessageField2Title=Custom Title\n" + - "MessageFiled2Text=Custom Filed 2 text\n" + - "MessageFooter=Today: {time.date} at {time.time}\n"); - } - - if (Functions.readCodeFromFile(ConfigFile, "Enabled", '=') != "True") return; - //System.Console.WriteLine("Awaiting user join event ..."); - - client.UserJoined += Client_UserJoined; - - } - - private async System.Threading.Tasks.Task Client_UserJoined(Discord.WebSocket.SocketGuildUser user) - { - Console_Utilities.WriteColorText("A new user joins: " + user.Username); - EmbedBuilder embed = new EmbedBuilder - { - Title = Functions.readCodeFromFile(ConfigFile, "MessageTitle", '='), - Description = Functions.readCodeFromFile(ConfigFile, "MessageDescription", '=') - }; - embed - .AddField(Functions.readCodeFromFile(ConfigFile, "MessageField1Title", '=').Replace("{user.Name}", user.Username).Replace("{time.date}", System.DateTime.Now.ToShortDateString()).Replace("{time.time}", System.DateTime.Now.ToShortTimeString()), Functions.readCodeFromFile(ConfigFile, "MessageField1Text", '=').Replace("{user.Name}", user.Username).Replace("{time.date}", System.DateTime.Now.ToShortDateString()).Replace("{time.time}", System.DateTime.Now.ToShortTimeString())) - .AddField(Functions.readCodeFromFile(ConfigFile, "MessageField2Title", '=').Replace("{user.Name}", user.Username).Replace("{time.date}", System.DateTime.Now.ToShortDateString()).Replace("{time.time}", System.DateTime.Now.ToShortTimeString()), Functions.readCodeFromFile(ConfigFile, "MessageField2Text", '=').Replace("{user.Name}", user.Username).Replace("{time.date}", System.DateTime.Now.ToShortDateString()).Replace("{time.time}", System.DateTime.Now.ToShortTimeString())) - .WithFooter(Functions.readCodeFromFile(ConfigFile, "MessageFooter", '=').Replace("{user.Name}", user.Username).Replace("{time.date}", System.DateTime.Now.ToShortDateString()).Replace("{time.time}", System.DateTime.Now.ToShortTimeString())); - await user.Guild.DefaultChannel.SendMessageAsync(embed: embed.Build()); - } -} \ No newline at end of file diff --git a/StartupEvents/SetGameOnLogin.cs b/StartupEvents/SetGameOnLogin.cs deleted file mode 100644 index 4a2d2d9..0000000 --- a/StartupEvents/SetGameOnLogin.cs +++ /dev/null @@ -1,48 +0,0 @@ -public class SetGameOnLogin : PluginManager.Interfaces.DBEvent -{ - public string name => "Set Game on Startup"; - public string description => "Set Custom Game to the bot at initialization"; - public async void Start(Discord.WebSocket.DiscordSocketClient client) - { - string UtilsPath = PluginManager.Others.Functions.dataFolder + "StartupEvents/"; - string ConfigFile = UtilsPath + "LoginEvent.txt"; - - System.IO.Directory.CreateDirectory(UtilsPath); - if (!System.IO.File.Exists(ConfigFile)) - { - System.Console.WriteLine($"First time setup. Open file: {ConfigFile} to change settings or use the following commands\nNote: For space ( ) use underline (_). Example: 'Hello_World' will output 'Hello World'"); - System.Console.WriteLine($"set-setting StartupEvents.LoginEvent.Title [Custom_Title(s)]"); - System.Console.WriteLine($"set-setting StartupEvents.LoginEvent.Dynamic_Title [True/False]"); - System.Console.WriteLine($"set-setting StartupEvents.LoginEvent.Dynamic_Title_Change_Rate [interval in milliseconds]"); - await System.IO.File.WriteAllTextAsync(ConfigFile, "Enabled=True\n\nDynamic Title=False\n#For dynamic title add titles like this:\n#Title=Hello,World,Test,Test2\nTitle=!help\nDynamic Title Change Rate=3500\n"); - } - - if (PluginManager.Others.Functions.readCodeFromFile(ConfigFile, "Enabled", '=') != "True") - return; - - bool isDynamic = PluginManager.Others.Functions.readCodeFromFile(ConfigFile, "Dynamic Title", '=') == "True"; - string Title = PluginManager.Others.Functions.readCodeFromFile(ConfigFile, "Title", '='); - if (Title == null || Title.Length < 2) return; - if (!isDynamic) - await client.SetGameAsync(Title, null, Discord.ActivityType.Playing); - else - { - string[] Titles = Title.Split(','); - int delayMS = 3500; - try - { - delayMS = int.Parse(PluginManager.Others.Functions.readCodeFromFile(ConfigFile, "Dynamic Title Change Rate", '=')); - } - catch { } - while (true) - { - foreach (var title in Titles) - { - await client.SetGameAsync(title, null, Discord.ActivityType.Playing); - await System.Threading.Tasks.Task.Delay(delayMS); - } - } - } - - } -} \ No newline at end of file diff --git a/StartupEvents/StartupEvents.csproj b/StartupEvents/StartupEvents.csproj deleted file mode 100644 index aaabc01..0000000 --- a/StartupEvents/StartupEvents.csproj +++ /dev/null @@ -1,17 +0,0 @@ - - - - net6.0 - - - - ..\BUILDS\ - none - false - - - - - - -