From b7ce1a21628c1a029c4baf3763013fbacac457c5 Mon Sep 17 00:00:00 2001 From: Tabby <41929769+tabby-cat-nya@users.noreply.github.com> Date: Thu, 30 Oct 2025 01:42:52 +1100 Subject: [PATCH] printer creation and deltion working --- application_cmds/printer-create.gd | 31 +++++++++++++++++++++ application_cmds/printer-create.gd.uid | 1 + application_cmds/printer-delete.gd | 38 ++++++++++++++++++++++++++ application_cmds/printer-delete.gd.uid | 1 + datatypes/printer.gd | 3 ++ library.gd | 13 ++++++++- project.godot | 2 +- 7 files changed, 87 insertions(+), 2 deletions(-) create mode 100644 application_cmds/printer-create.gd create mode 100644 application_cmds/printer-create.gd.uid create mode 100644 application_cmds/printer-delete.gd create mode 100644 application_cmds/printer-delete.gd.uid diff --git a/application_cmds/printer-create.gd b/application_cmds/printer-create.gd new file mode 100644 index 0000000..20d9bab --- /dev/null +++ b/application_cmds/printer-create.gd @@ -0,0 +1,31 @@ +extends RefCounted + +#func on_ready(main, bot: DiscordBot) -> void: +# pass +# +#func on_autocomplete(main, bot: DiscordBot, interaction: DiscordInteraction, options: Array) -> void: +# pass + +func execute(main, bot: DiscordBot, interaction: DiscordInteraction, options: Array) -> void: + print(options) + var printer_name = options[0].value + + var new_printer : Printer = Printer.new() + new_printer.name = printer_name + Library.save.printers.append(new_printer) + Library.save_data() + + var response : String = "Created new printer: `" + printer_name + "`\n" + var embed = Embed.new().set_description(Library.list_printers()) + + interaction.reply({ + "content": response, + "embeds":[embed] + }) + pass + +var data = ApplicationCommand.new()\ + .set_name("printer-create")\ + .set_description("create a new printer")\ + .add_option(ApplicationCommand.string_option("name", "the printers name",{"required":true}))\ + diff --git a/application_cmds/printer-create.gd.uid b/application_cmds/printer-create.gd.uid new file mode 100644 index 0000000..b51dc36 --- /dev/null +++ b/application_cmds/printer-create.gd.uid @@ -0,0 +1 @@ +uid://la4baew86v6g diff --git a/application_cmds/printer-delete.gd b/application_cmds/printer-delete.gd new file mode 100644 index 0000000..3c11c0a --- /dev/null +++ b/application_cmds/printer-delete.gd @@ -0,0 +1,38 @@ +extends RefCounted + +#func on_ready(main, bot: DiscordBot) -> void: +# pass +# +#func on_autocomplete(main, bot: DiscordBot, interaction: DiscordInteraction, options: Array) -> void: +# pass + +func execute(main, bot: DiscordBot, interaction: DiscordInteraction, options: Array) -> void: + print(options) + var printer_name = options[0].value + + for printer in Library.save.printers: + if printer.name == printer_name: + Library.save.printers.erase(printer) + + Library.save_data() + + var response : String = "erased printer: `" + printer_name + "`\n" + var embed = Embed.new().set_description(Library.list_printers()) + + interaction.reply({ + "content": response, + "embeds":[embed] + }) + pass + + +var data = ApplicationCommand.new()\ + .set_name("printer-delete")\ + .set_description("remove a printer")\ + .add_option(ApplicationCommand.string_option("name", "the printers name", + { + "required":true, + + "choices" : Library.printer_choies() + }))\ + diff --git a/application_cmds/printer-delete.gd.uid b/application_cmds/printer-delete.gd.uid new file mode 100644 index 0000000..5df4d53 --- /dev/null +++ b/application_cmds/printer-delete.gd.uid @@ -0,0 +1 @@ +uid://iig4ws0haoew diff --git a/datatypes/printer.gd b/datatypes/printer.gd index 399a7c6..93a4472 100644 --- a/datatypes/printer.gd +++ b/datatypes/printer.gd @@ -1,2 +1,5 @@ extends Resource class_name Printer + +@export var name : String +@export var spool : Spool diff --git a/library.gd b/library.gd index 06fbb3e..53acfc9 100644 --- a/library.gd +++ b/library.gd @@ -37,4 +37,15 @@ func save_new(): save = LibrarySave.new() var error = ResourceSaver.save(save, save_path) print(error) - + +func list_printers() -> String: + var response : String = "Current Printers:" + for printer : Printer in save.printers: + response += "\n- " + printer.name + return response + +func printer_choies() -> Array[Dictionary]: + var printer_names : Array[Dictionary] = [] + for printer : Printer in save.printers: + printer_names.append(ApplicationCommand.choice(printer.name, printer.name)) + return printer_names diff --git a/project.godot b/project.godot index c0e9473..b1b5bd0 100644 --- a/project.godot +++ b/project.godot @@ -11,7 +11,7 @@ config_version=5 [application] config/name="FabsocBot" -run/main_scene="uid://dyob0p2l7g5fj" +run/main_scene="uid://cd60nfxe4lnq1" config/features=PackedStringArray("4.5", "GL Compatibility") config/icon="uid://dta0nr1cvl70v"