|
60 | 60 | if(!network)
|
61 | 61 | return TOPIC_REFRESH
|
62 | 62 | // Helper for some user-friendliness. Try to select the first available mainframe.
|
63 |
| - var/list/file_servers = network.get_file_server_tags() |
| 63 | + var/list/file_servers = network.get_file_server_tags(MF_ROLE_FILESERVER, user) |
| 64 | + var/datum/file_storage/network/N = current_filesource |
64 | 65 | if(!file_servers.len)
|
| 66 | + N.server = null // Don't allow players to see files on mainframes they cannot access. |
65 | 67 | return TOPIC_REFRESH
|
66 |
| - var/datum/file_storage/network/N = current_filesource |
67 | 68 | N.server = file_servers[1]
|
68 | 69 | return TOPIC_REFRESH
|
69 | 70 |
|
|
163 | 164 | ui_header = null
|
164 | 165 | return TOPIC_REFRESH
|
165 | 166 |
|
166 |
| - if(href_list["PRG_copyto"]) |
| 167 | + if(href_list["PRG_transferto"]) |
167 | 168 | . = TOPIC_REFRESH
|
168 |
| - var/datum/computer_file/F = current_filesource.get_file(href_list["PRG_copyto"]) |
169 |
| - if(!F || !istype(F)) |
170 |
| - error = "I/O ERROR: Unable to open file." |
| 169 | + var/datum/computer_file/F = current_filesource.get_file(href_list["PRG_transferto"]) |
| 170 | + if(!F || !istype(F) || F.unsendable) |
| 171 | + error = "I/O ERROR: Unable to transfer file." |
171 | 172 | return
|
172 | 173 | var/list/choices = list()
|
173 | 174 | for(var/T in file_sources)
|
174 | 175 | var/datum/file_storage/FS = file_sources[T]
|
175 | 176 | if(FS == current_filesource)
|
176 | 177 | continue
|
177 | 178 | choices[FS.name] = FS
|
178 |
| - var/file_source = input(usr, "Choose a destination storage medium:", "Copy To Another Medium") as null|anything in choices |
| 179 | + var/file_source = input(usr, "Choose a destination storage medium:", "Transfer To Another Medium") as null|anything in choices |
179 | 180 | if(file_source)
|
180 | 181 | var/datum/file_storage/dst = choices[file_source]
|
181 | 182 | var/nope = dst.check_errors()
|
182 | 183 | if(nope)
|
183 |
| - to_chat(user, SPAN_WARNING("Cannot copy file to [dst] for following reason: [nope]")) |
| 184 | + to_chat(user, SPAN_WARNING("Cannot transfer file to [dst] for following reason: [nope]")) |
184 | 185 | return
|
185 |
| - current_transfer = new(current_filesource, dst, F) |
| 186 | + current_transfer = new(current_filesource, dst, F, FALSE) |
186 | 187 | ui_header = "downloader_running.gif"
|
187 | 188 |
|
188 | 189 | /datum/computer_file/program/filemanager/ui_interact(mob/user, ui_key = "main", var/datum/nanoui/ui = null, var/force_open = 1, var/datum/topic_state/state = GLOB.default_state)
|
|
215 | 216 | "name" = F.filename,
|
216 | 217 | "type" = F.filetype,
|
217 | 218 | "size" = F.size,
|
218 |
| - "undeletable" = F.undeletable |
| 219 | + "undeletable" = F.undeletable, |
| 220 | + "unsendable" = F.unsendable |
219 | 221 | )))
|
220 | 222 | data["files"] = files
|
221 | 223 |
|
|
239 | 241 | if(QDELETED(current_transfer)) //either completely
|
240 | 242 | error = "I/O ERROR: Unknown error during the file transfer."
|
241 | 243 | else //or during the saving at the destination
|
242 |
| - error = "I/O ERROR: Unable to store '[current_transfer.copying.filename]' at [current_transfer.copying_to]" |
| 244 | + error = "I/O ERROR: Unable to store '[current_transfer.transferring.filename]' at [current_transfer.transfer_to]" |
243 | 245 | qdel(current_transfer)
|
244 | 246 | current_transfer = null
|
245 | 247 | ui_header = null
|
246 | 248 | return
|
247 |
| - else if(!current_transfer.left_to_copy) //done |
| 249 | + else if(!current_transfer.left_to_transfer) //done |
248 | 250 | QDEL_NULL(current_transfer)
|
249 | 251 | ui_header = null
|
250 | 252 |
|
0 commit comments