69 lines
1.9 KiB
Plaintext
Executable File
69 lines
1.9 KiB
Plaintext
Executable File
import:
|
|
org.bukkit.ChatColor
|
|
|
|
options:
|
|
|
|
CharacterLimitPerLine: 25
|
|
LegacyLoreSupport: true
|
|
|
|
#USAGE
|
|
#set slot 0 of player's current inventory to emerald with lore "your lore here", "maybe here too?"
|
|
|
|
#OR if the syntax override isn't working for you
|
|
#set slot 0 of player's current inventory to emerald with custom lore "your lore here", "maybe here too?"
|
|
|
|
expression %itemstack% with [custom] lore %strings%:
|
|
get:
|
|
set {_item} to expression 1
|
|
set {_lore::*} to expressions 2
|
|
|
|
|
|
if {@LegacyLoreSupport} is true:
|
|
loop {_lore::*}:
|
|
|
|
loop loop-value split at "||":
|
|
add 1 to {_i}
|
|
|
|
#the weird index is needed to keep things in right line order after split
|
|
|
|
set {_lore::%loop-index-1%.0%{_i}%} to loop-value-2
|
|
|
|
if {_lore::%loop-index%.0%{_i}%} is set:
|
|
delete {_lore::%loop-index%}
|
|
|
|
loop {_lore::*}:
|
|
length of uncolored loop-value is higher than {@CharacterLimitPerLine}:
|
|
|
|
loop loop-value split at " ":
|
|
|
|
set {_color} to ChatColor.getLastColors({_lasttext} ? loop-value-2)
|
|
|
|
if {_textt} is not set:
|
|
set {_textt} to "%{_color}%%loop-value-2%"
|
|
else:
|
|
set {_textt} to "%{_textt}% %loop-value-2%"
|
|
|
|
#for getting color codes of last text later
|
|
|
|
set {_lasttext} to {_textt}
|
|
|
|
#when one line reaches character limit
|
|
|
|
if length of uncolored {_textt} is not less than {@CharacterLimitPerLine}:
|
|
add {_textt} to {_lorefinal::*}
|
|
delete {_textt}
|
|
|
|
#when the whole line is over, but not reached character limit
|
|
|
|
{_textt} is set:
|
|
add {_textt} to {_lorefinal::*}
|
|
delete {_textt}
|
|
|
|
else:
|
|
|
|
#when the line doesn't need splitting, it is shorter than the character limit
|
|
|
|
add loop-value to {_lorefinal::*}
|
|
|
|
set lore of {_item} to {_lorefinal::*}
|
|
return {_item} |