printer nozzle edits, spool creation
This commit is contained in:
parent
319e30e3d4
commit
492990f073
9 changed files with 137 additions and 3 deletions
|
|
@ -1 +0,0 @@
|
||||||
uid://ow8cfjxy4fio
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
[gd_scene load_steps=2 format=3 uid="uid://1oww0utk77w7"]
|
[gd_scene load_steps=2 format=3 uid="uid://1oww0utk77w7"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://hkh1ewsuji8m" path="res://library.gd" id="1_gqcys"]
|
[ext_resource type="Script" path="res://library.gd" id="1_gqcys"]
|
||||||
|
|
||||||
[node name="Library" type="Node"]
|
[node name="Library" type="Node"]
|
||||||
script = ExtResource("1_gqcys")
|
script = ExtResource("1_gqcys")
|
||||||
|
|
|
||||||
|
|
@ -1 +1,4 @@
|
||||||
# FabsocBot
|
# FabsocBot
|
||||||
|
|
||||||
|
## Todo
|
||||||
|
- [ ] Write todo
|
||||||
|
|
|
||||||
81
application_cmds/printer-nozzle.gd
Normal file
81
application_cmds/printer-nozzle.gd
Normal file
|
|
@ -0,0 +1,81 @@
|
||||||
|
extends RefCounted
|
||||||
|
|
||||||
|
|
||||||
|
#func on_ready(main, bot: DiscordBot) -> void:
|
||||||
|
#pass
|
||||||
|
#
|
||||||
|
func on_autocomplete(main, bot: DiscordBot, interaction: DiscordInteraction, options: Array) -> void:
|
||||||
|
#print(options)
|
||||||
|
#interaction.respond_autocomplete(Library.printer_choies())
|
||||||
|
|
||||||
|
# The part of string which the user is typing
|
||||||
|
var part = options[0].value
|
||||||
|
#print("received autocomplete: ", part)
|
||||||
|
|
||||||
|
# The final Array of choices for the autocomplete response
|
||||||
|
var result = []
|
||||||
|
for hint in Library.printer_choices_string():
|
||||||
|
# If the user hasn't typed anything, add all the hints
|
||||||
|
if part == "":
|
||||||
|
result.append(ApplicationCommand.choice(hint, hint))
|
||||||
|
else:
|
||||||
|
# If the user has typed some part of string,
|
||||||
|
# add only those hints which have the part as a substring
|
||||||
|
if hint.findn(part) > -1:
|
||||||
|
result.append(ApplicationCommand.choice(hint, hint))
|
||||||
|
|
||||||
|
# Limit the number of results to 25 (Discord's limit is 25)
|
||||||
|
if result.size() > 25:
|
||||||
|
result = result.slice(0, 24)
|
||||||
|
|
||||||
|
# Respond with the results
|
||||||
|
interaction.respond_autocomplete(result)
|
||||||
|
pass
|
||||||
|
|
||||||
|
func execute(main, bot: DiscordBot, interaction: DiscordInteraction, options: Array) -> void:
|
||||||
|
print(options)
|
||||||
|
var printer_name = options[0].value
|
||||||
|
var new_nozzle = options[1].value
|
||||||
|
var printer_exists : bool = false
|
||||||
|
|
||||||
|
for printer in Library.save.printers:
|
||||||
|
if printer.name == printer_name:
|
||||||
|
printer_exists = true
|
||||||
|
printer.nozzle = new_nozzle
|
||||||
|
#Library.save.printers.erase(printer)
|
||||||
|
|
||||||
|
Library.save_data()
|
||||||
|
|
||||||
|
if not printer_exists:
|
||||||
|
interaction.reply({
|
||||||
|
"content" : "unable to find " + printer_name
|
||||||
|
})
|
||||||
|
return
|
||||||
|
|
||||||
|
var response : String = new_nozzle + " nozzle applied to `" + 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-nozzle")\
|
||||||
|
.set_description("chnage the nozzle attached to a printer")\
|
||||||
|
.add_option(ApplicationCommand.string_option("name", "the printers name",
|
||||||
|
{
|
||||||
|
"required":true,
|
||||||
|
"autocomplete":true,
|
||||||
|
#"choices" : Library.printer_choies()
|
||||||
|
}))\
|
||||||
|
.add_option(ApplicationCommand.string_option("new_nozzle","new nozzle to apply to the printer",
|
||||||
|
{
|
||||||
|
"required" : true,
|
||||||
|
}))\
|
||||||
|
|
||||||
|
|
||||||
|
## lesson learnt: option name must not have spaces
|
||||||
1
application_cmds/printer-nozzle.gd.uid
Normal file
1
application_cmds/printer-nozzle.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://dblj3uerl5km2
|
||||||
37
application_cmds/spool-create.gd
Normal file
37
application_cmds/spool-create.gd
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
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 spool_name : String = options[0].value
|
||||||
|
var spool_link : String
|
||||||
|
if options.size() > 1:
|
||||||
|
spool_link = options[1].value
|
||||||
|
|
||||||
|
var new_spool : Spool = Spool.new()
|
||||||
|
new_spool.name = spool_name
|
||||||
|
if spool_link:
|
||||||
|
new_spool.link = spool_link
|
||||||
|
Library.save.spools.append(new_spool)
|
||||||
|
Library.save_data()
|
||||||
|
|
||||||
|
var response : String = "Created new spool: `" + spool_name + "`\n"
|
||||||
|
var embed = Embed.new().set_description(Library.list_spools())
|
||||||
|
|
||||||
|
interaction.reply({
|
||||||
|
"content": response,
|
||||||
|
"embeds":[embed]
|
||||||
|
})
|
||||||
|
pass
|
||||||
|
|
||||||
|
var data = ApplicationCommand.new()\
|
||||||
|
.set_name("spool-create")\
|
||||||
|
.set_description("create a new spool")\
|
||||||
|
.add_option(ApplicationCommand.string_option("name", "the printers name",{"required":true}))\
|
||||||
|
.add_option(ApplicationCommand.string_option("link", "optional link to the fillaments page", {"required" : false}))
|
||||||
|
|
||||||
1
application_cmds/spool-create.gd.uid
Normal file
1
application_cmds/spool-create.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
uid://0c0a4lu0fwga
|
||||||
|
|
@ -2,6 +2,12 @@ extends Resource
|
||||||
class_name Spool
|
class_name Spool
|
||||||
|
|
||||||
@export var name : String
|
@export var name : String
|
||||||
@export var material : String
|
#@export var material : String
|
||||||
@export var link : String
|
@export var link : String
|
||||||
# tags?
|
# tags?
|
||||||
|
|
||||||
|
func list_string() -> String:
|
||||||
|
var result : String = name
|
||||||
|
if link:
|
||||||
|
result = "[" + result +"]("+link+")"
|
||||||
|
return result
|
||||||
|
|
|
||||||
|
|
@ -45,6 +45,12 @@ func list_printers() -> String:
|
||||||
response += "\n- " + printer.list_string()
|
response += "\n- " + printer.list_string()
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
func list_spools() -> String:
|
||||||
|
var response : String = "Current Spools:"
|
||||||
|
for spool : Spool in save.spools:
|
||||||
|
response += "\n- " + spool.list_string()
|
||||||
|
return response
|
||||||
|
|
||||||
func printer_choies() -> Array[Dictionary]:
|
func printer_choies() -> Array[Dictionary]:
|
||||||
var printer_names : Array[Dictionary] = []
|
var printer_names : Array[Dictionary] = []
|
||||||
for printer : Printer in save.printers:
|
for printer : Printer in save.printers:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue