Just so you know, we don't know the file format for every file. If it's just a bunch of random characters, it's probably a .zip or .jar.
function decode(t: text) :: integer:
if {_t} parsed as integer > 10:
return {_t} parsed as integer
if {_t} = "X":
return 10
else if {_t} = "IX":
return 9
else if {_t} = "VIII":
return 8
else if {_t} = "VII":
return 7
else if {_t} = "VI":
return 6
else if {_t} = "V":
return 5
else if {_t} = "IV":
return 4
else if {_t} = "III":
return 3
else if {_t} = "II":
return 2
else if {_t} = "I":
return 1
function toRoman(n: integer) :: string:
if {_n} > 10:
return "%{_n}%"
stop
set {_roman::*} to "X", "IX", "V", "IV" and "I"
loop 10, 9, 5, 4 and 1:
add 1 to {_index}
while {_n} >= loop-value:
add 1 to {_next}
remove loop-value from {_n}
set {_result::%{_next}%} to {_roman::%{_index}%}
return (join {_result::*} by "") ? "0"
function hasEnchant(i: item, t: string) :: boolean:
set {_lore::*} to lore of {_i} split at "||"
loop {_lore::*}:
if loop-value contains "%{_t}%":
return true
function getEnchantLevel(i: item, t: string) :: integer:
set {_lore::*} to lore of {_i} split at "||"
set {_n} to 0
loop {_lore::*}:
add 1 to {_n}
if loop-value contains "%{_t}%":
set {_enchant::*} to loop-value split at "%{_t}% "
set {_enchant} to decode({_enchant::2})
return {_enchant}
function applyEnchant(i: item, t: string, l: integer, r: boolean):
set {_lore::*} to lore of {_i} split at "||"
set {_n} to 0
loop {_lore::*}:
add 1 to {_n}
if loop-value contains "%{_t}%":
if {_r} = true:
set line {_n} of lore of {_i} to "%{_t}% %toRoman({_l})%"
else:
set line {_n} of lore of {_i} to "%{_t}% %{_l}%"
function removeEnchant(i: item, t: string):
set {_lore::*} to lore of {_i} split at "||"
set {_n} to 0
loop {_lore::*}:
add 1 to {_n}
if loop-value contains "%{_t}%":
delete {_lore::%{_n}%}
set {_lore} to (join {_lore::*} by "||")
set lore of {_i} to {_lore}
function addEnchantLevel(i: item, t: string, l: integer, r: boolean):
set {_lore::*} to lore of {_i} split at "||"
set {_n} to 0
loop {_lore::*}:
add 1 to {_n}
if loop-value contains "%{_t}%":
set {_level::*} to loop-value split at "%{_t}% "
set {_level} to decode({_level::2})
add {_l} to {_level}
if {_r} = true:
set line {_n} of lore of {_i} to "%{_t}% %toRoman({_level})%"
else:
set line {_n} of lore of {_i} to "%{_t}% %{_level}%"
function subtractEnchantLevel(i: item, t: string, l: integer, r: boolean):
set {_lore::*} to lore of {_i} split at "||"
set {_n} to 0
loop {_lore::*}:
add 1 to {_n}
if loop-value contains "%{_t}%":
set {_level::*} to loop-value split at "%{_t}% "
set {_level} to decode({_level::2})
subtract {_l} from {_level}
if {_level} < 1:
set {_level} to 1
if {_r} = true:
set line {_n} of lore of {_i} to "%{_t}% %toRoman({_level})%"
else:
set line {_n} of lore of {_i} to "%{_t}% %{_level}%"