diff --git a/code/game/magic/archived_book.dm b/code/game/magic/archived_book.dm
index 1aab354815a..ea484584df1 100644
--- a/code/game/magic/archived_book.dm
+++ b/code/game/magic/archived_book.dm
@@ -39,25 +39,46 @@ var/global/datum/book_manager/book_mgr = new()
if(!src.holder)
to_chat(src, "Only administrators may use this command.")
return
+//VOREStation Edit Start
+ var/obj/machinery/librarycomp/our_comp
+ for(var/obj/machinery/librarycomp/l in world)
+ if(istype(l, /obj/machinery/librarycomp))
+ our_comp = l
+ break
- var/isbn = tgui_input_number(usr, "ISBN number?", "Delete Book")
- if(!isbn)
+ if(!our_comp)
+ to_chat(usr, "Unable to locate a library computer to use for book deleting.")
return
- if(BOOKS_USE_SQL && config.sql_enabled)
- var/DBConnection/dbcon = new()
- dbcon.Connect("dbi:mysql:[sqldb]:[sqladdress]:[sqlport]","[sqllogin]","[sqlpass]")
- if(!dbcon.IsConnected())
- tgui_alert_async(usr, "Connection to Archive has been severed. Aborting.")
- return
+ var/dat = "
Book Inventory Management\n" //
+ dat += "ADMINISTRATIVE MANAGEMENT
"
+ establish_old_db_connection()
+
+ if(!dbcon_old.IsConnected())
+ dat += "ERROR: Unable to contact External Archive. Please contact your system administrator for assistance."
else
- var/DBQuery/query = dbcon.NewQuery("DELETE FROM library WHERE id=[isbn]")
- if(!query.Execute())
- to_chat(usr,query.ErrorMsg())
- dbcon.Disconnect()
- else
- book_mgr.remove(isbn)
- log_admin("[usr.key] has deleted the book [isbn]")
+ dat += {"(Order book by SS13BN)
+ "
+
+ usr << browse(dat, "window=library")
+ onclose(usr, "library")
+//VOREStation Edit End
// delete a book
/datum/book_manager/proc/remove(var/id)
diff --git a/code/modules/admin/admin_verb_lists_vr.dm b/code/modules/admin/admin_verb_lists_vr.dm
index b51ebf71d16..455c8ccc805 100644
--- a/code/modules/admin/admin_verb_lists_vr.dm
+++ b/code/modules/admin/admin_verb_lists_vr.dm
@@ -128,7 +128,8 @@ var/list/admin_verbs_admin = list(
/datum/admins/proc/view_feedback,
/client/proc/make_mentor,
/client/proc/unmake_mentor,
- /client/proc/removetickets
+ /client/proc/removetickets,
+ /client/proc/delbook
)
var/list/admin_verbs_ban = list(
diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm
index a3ee1610c47..20094948d78 100644
--- a/code/modules/library/lib_machines.dm
+++ b/code/modules/library/lib_machines.dm
@@ -304,6 +304,43 @@
user << browse(dat, "window=library")
onclose(user, "library")
+//VOREStation Addition Start
+/obj/machinery/librarycomp/attack_ghost(mob/user)
+
+ var/show_admin_options = check_rights(R_ADMIN, show_msg = FALSE)
+ if(!show_admin_options)
+ . = ..()
+
+ else
+ usr.set_machine(src)
+ var/dat = "Book Inventory Management\n" //
+
+ dat += "ADMINISTRATIVE MANAGEMENT
"
+ establish_old_db_connection()
+
+ if(!dbcon_old.IsConnected())
+ dat += "ERROR: Unable to contact External Archive. Please contact your system administrator for assistance."
+ else
+ dat += {"(Order book by SS13BN)
+ "
+ dat += "
(Return to main menu)
"
+
+ user << browse(dat, "window=library")
+ onclose(user, "library")
+//VOREStation Addition End
+
/obj/machinery/librarycomp/emag_act(var/remaining_charges, var/mob/user)
if (src.density && !src.emagged)
src.emagged = 1
@@ -460,6 +497,7 @@
else
var/DBQuery/query = dbcon_old.NewQuery("DELETE FROM library WHERE id=[sqlid]")
query.Execute()
+ log_admin("[usr.key] has deleted the book [sqlid]") //VOREStation Addition
if(href_list["orderbyid"])
var/orderid = tgui_input_number(usr, "Enter your order:")
@@ -571,4 +609,4 @@
b.icon_state = "book[rand(1,7)]"
qdel(O)
else
- ..()
\ No newline at end of file
+ ..()