diff --git a/MinecraftDiscordBot.sln b/MinecraftDiscordBot.sln
index 7343fb9..b7f21a3 100644
--- a/MinecraftDiscordBot.sln
+++ b/MinecraftDiscordBot.sln
@@ -6,6 +6,7 @@ MinimumVisualStudioVersion = 10.0.40219.1
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{CE65C879-794A-4695-B659-7376FE7DB5E3}"
ProjectSection(SolutionItems) = preProject
.gitignore = .gitignore
+ build.py = build.py
MinecraftDiscordBot\bin\Debug\net6.0\config.json = MinecraftDiscordBot\bin\Debug\net6.0\config.json
EndProjectSection
EndProject
diff --git a/MinecraftDiscordBot/BotConfiguration.cs b/MinecraftDiscordBot/BotConfiguration.cs
index 3806874..fb8097a 100644
--- a/MinecraftDiscordBot/BotConfiguration.cs
+++ b/MinecraftDiscordBot/BotConfiguration.cs
@@ -11,8 +11,11 @@ public class BotConfiguration : IBotConfiguration, IBotConfigurator {
[JsonProperty("token", Required = Required.Always)]
[Option('t', "token", HelpText = "The Discord bot token", Required = true)]
public string Token { get; init; } = default!;
+ [JsonProperty("address", Required = Required.Always)]
+ [Option('a', "address", HelpText = "The connection string for the websocket", Required = true)]
+ public string Address { get; init; } = default!;
[JsonProperty("port", Required = Required.DisallowNull)]
- [Option('p', "port", Default = DEFAULT_PORT, HelpText = "The websocket server port")]
+ [Option('p', "port", Default = DEFAULT_PORT, HelpText = "The websocket server listen port")]
public int Port { get; init; } = DEFAULT_PORT;
[JsonProperty("channels", Required = Required.Always)]
[Option('c', "channel", HelpText = "The list of whitelisted channels", Required = true, Min = 1)]
diff --git a/MinecraftDiscordBot/ClientScript.lua b/MinecraftDiscordBot/ClientScript.lua
index fe399d5..4acb43c 100644
--- a/MinecraftDiscordBot/ClientScript.lua
+++ b/MinecraftDiscordBot/ClientScript.lua
@@ -210,6 +210,7 @@ local function playerStatusEventListener(socket)
break
end
printError("playerDetector not connected!")
+ sleep(5)
end
while true do
local pd = peripheral.find("playerDetector")
diff --git a/MinecraftDiscordBot/MinecraftDiscordBot.csproj b/MinecraftDiscordBot/MinecraftDiscordBot.csproj
index c025260..4d14636 100644
--- a/MinecraftDiscordBot/MinecraftDiscordBot.csproj
+++ b/MinecraftDiscordBot/MinecraftDiscordBot.csproj
@@ -6,7 +6,7 @@
enable
enable
Linux
- 1.1.3
+ 1.1.4
Michael Chen
$(Authors)
https://gitlab.com/chenmichael/mcdiscordbot
diff --git a/MinecraftDiscordBot/Program.cs b/MinecraftDiscordBot/Program.cs
index 77db653..c5406bd 100644
--- a/MinecraftDiscordBot/Program.cs
+++ b/MinecraftDiscordBot/Program.cs
@@ -50,7 +50,7 @@ public class Program : IDisposable, ICommandHandler, IUserRoleMana
if (stream is null) throw new FileNotFoundException("Client script could not be loaded!");
using var sr = new StreamReader(stream);
return sr.ReadToEnd()
- .Replace("$HOST", $"ws://{config.SocketHost}:{config.Port}");
+ .Replace("$HOST", config.Address);
}
private Task Broadcast(Func> message)
diff --git a/build.py b/build.py
index e382fa7..0f13d29 100644
--- a/build.py
+++ b/build.py
@@ -15,20 +15,18 @@ platforms = ['linux/amd64', 'linux/arm64', 'linux/arm/v7']
def pull(image):
subprocess.run([dockercmd, 'pull', baseimage], check=True)
-def build(image, directory, platforms, build_args = None):
+def build(images, directory, platforms, build_args = None):
if build_args is None:
build_args = []
build_args = list(chain.from_iterable(['--build-arg', f'{arg}={val}'] for (arg, val) in build_args))
+ tags = list(chain.from_iterable(['-t', image] for image in images))
platformlist = ','.join(platforms)
- subprocess.run([dockercmd, 'buildx', 'build', '-f', 'MinecraftDiscordBot/Dockerfile', '--platform', platformlist, '-t', image] + build_args + ['--push', directory], check=True)
-
+ command = [dockercmd, 'buildx', 'build', '-f', 'MinecraftDiscordBot/Dockerfile', '--platform', platformlist, *tags] + build_args + ['--push', directory]
+ print(' '.join(command))
+ subprocess.run(command, check=True)
-for tag in args.tags:
- targetimage = f'chenio/mcdiscordbot:{tag}'
- baseimage = f'mcr.microsoft.com/dotnet/runtime:6.0'
-
- #print(f'Pulling base image {baseimage}')
- #pull(baseimage)
- print(f'Building image {targetimage} from {baseimage}.')
- build(targetimage, '.', platforms, [('TAG', tag)])
-
\ No newline at end of file
+for version in args.tags:
+ parts = version.split('.')
+ tags = list('.'.join(parts[:i]) for i in range(1, len(parts) + 1))
+ tags.append('latest')
+ build([f'chenio/mcdiscordbot:{tag}' for tag in tags], '.', platforms)