forked from Upstream/mmocore
Fixed issue #931 related to waypoints lore being inverted in the UI. Now you can use the placeholder {lore} in the UI config to display the waypoint specific lore.
This commit is contained in:
parent
7b45b54793
commit
55953d41ce
@ -1,18 +1,17 @@
|
|||||||
package net.Indyuce.mmocore.gui;
|
package net.Indyuce.mmocore.gui;
|
||||||
|
|
||||||
import net.Indyuce.mmocore.MMOCore;
|
import net.Indyuce.mmocore.MMOCore;
|
||||||
import net.Indyuce.mmocore.api.player.PlayerData;
|
|
||||||
import net.Indyuce.mmocore.gui.api.InventoryClickContext;
|
|
||||||
import net.Indyuce.mmocore.gui.api.item.InventoryItem;
|
|
||||||
import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
|
|
||||||
import net.Indyuce.mmocore.api.player.PlayerActivity;
|
import net.Indyuce.mmocore.api.player.PlayerActivity;
|
||||||
|
import net.Indyuce.mmocore.api.player.PlayerData;
|
||||||
import net.Indyuce.mmocore.gui.api.EditableInventory;
|
import net.Indyuce.mmocore.gui.api.EditableInventory;
|
||||||
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
|
import net.Indyuce.mmocore.gui.api.GeneratedInventory;
|
||||||
|
import net.Indyuce.mmocore.gui.api.InventoryClickContext;
|
||||||
|
import net.Indyuce.mmocore.gui.api.item.InventoryItem;
|
||||||
import net.Indyuce.mmocore.gui.api.item.Placeholders;
|
import net.Indyuce.mmocore.gui.api.item.Placeholders;
|
||||||
|
import net.Indyuce.mmocore.gui.api.item.SimplePlaceholderItem;
|
||||||
import net.Indyuce.mmocore.waypoint.Waypoint;
|
import net.Indyuce.mmocore.waypoint.Waypoint;
|
||||||
import net.Indyuce.mmocore.waypoint.WaypointPath;
|
import net.Indyuce.mmocore.waypoint.WaypointPath;
|
||||||
import org.apache.commons.lang.Validate;
|
import org.apache.commons.lang.Validate;
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.NamespacedKey;
|
import org.bukkit.NamespacedKey;
|
||||||
import org.bukkit.configuration.ConfigurationSection;
|
import org.bukkit.configuration.ConfigurationSection;
|
||||||
@ -142,16 +141,14 @@ public class WaypointViewer extends EditableInventory {
|
|||||||
// If a player can teleport to another waypoint given his location
|
// If a player can teleport to another waypoint given his location
|
||||||
Waypoint waypoint = inv.waypoints.get(inv.page * inv.getEditable().getByFunction("waypoint").getSlots().size() + n);
|
Waypoint waypoint = inv.waypoints.get(inv.page * inv.getEditable().getByFunction("waypoint").getSlots().size() + n);
|
||||||
ItemMeta meta = disp.getItemMeta();
|
ItemMeta meta = disp.getItemMeta();
|
||||||
|
List<String> lore = new ArrayList<>();
|
||||||
// Add waypoint lore if not empty
|
meta.getLore().forEach(string -> {
|
||||||
if (!waypoint.getLore().isEmpty()) {
|
if (string.contains("{lore}"))
|
||||||
List<String> lore = meta.getLore();
|
lore.addAll(waypoint.getLore());
|
||||||
Placeholders placeholders = new Placeholders();
|
else
|
||||||
for (String str : waypoint.getLore())
|
lore.add(string);
|
||||||
lore.add(0, ChatColor.GRAY + placeholders.apply(inv.getPlayer(), str));
|
});
|
||||||
meta.setLore(lore);
|
meta.setLore(lore);
|
||||||
}
|
|
||||||
|
|
||||||
PersistentDataContainer container = meta.getPersistentDataContainer();
|
PersistentDataContainer container = meta.getPersistentDataContainer();
|
||||||
container.set(new NamespacedKey(MMOCore.plugin, "waypointId"), PersistentDataType.STRING, waypoint.getId());
|
container.set(new NamespacedKey(MMOCore.plugin, "waypointId"), PersistentDataType.STRING, waypoint.getId());
|
||||||
disp.setItemMeta(meta);
|
disp.setItemMeta(meta);
|
||||||
@ -164,6 +161,7 @@ public class WaypointViewer extends EditableInventory {
|
|||||||
|
|
||||||
Waypoint waypoint = inv.waypoints.get(inv.page * inv.getByFunction("waypoint").getSlots().size() + n);
|
Waypoint waypoint = inv.waypoints.get(inv.page * inv.getByFunction("waypoint").getSlots().size() + n);
|
||||||
holders.register("name", waypoint.getName());
|
holders.register("name", waypoint.getName());
|
||||||
|
|
||||||
if (!onlyName) {
|
if (!onlyName) {
|
||||||
holders.register("current_cost", inv.paths.get(waypoint).getCost());
|
holders.register("current_cost", inv.paths.get(waypoint).getCost());
|
||||||
holders.register("normal_cost", decimal.format(inv.paths.containsKey(waypoint) ? inv.paths.get(waypoint).getCost() : Double.POSITIVE_INFINITY));
|
holders.register("normal_cost", decimal.format(inv.paths.containsKey(waypoint) ? inv.paths.get(waypoint).getCost() : Double.POSITIVE_INFINITY));
|
||||||
|
@ -33,6 +33,7 @@ items:
|
|||||||
not-ready: ENDER_PEARL
|
not-ready: ENDER_PEARL
|
||||||
|
|
||||||
lore:
|
lore:
|
||||||
|
- '{lore}'
|
||||||
- '&7You cannot teleport as the two waypoints are not linked.'
|
- '&7You cannot teleport as the two waypoints are not linked.'
|
||||||
|
|
||||||
|
|
||||||
@ -42,6 +43,7 @@ items:
|
|||||||
item: ENDER_PEARL
|
item: ENDER_PEARL
|
||||||
|
|
||||||
lore:
|
lore:
|
||||||
|
- '{lore}'
|
||||||
- '&7You cannot teleport as you are not standing on a waypoint.'
|
- '&7You cannot teleport as you are not standing on a waypoint.'
|
||||||
|
|
||||||
|
|
||||||
@ -50,6 +52,7 @@ items:
|
|||||||
item: ENDER_PEARL
|
item: ENDER_PEARL
|
||||||
|
|
||||||
lore:
|
lore:
|
||||||
|
- '{lore}'
|
||||||
- '&7The waypoint you are standing at.'
|
- '&7The waypoint you are standing at.'
|
||||||
|
|
||||||
# When you don't have enough stellium
|
# When you don't have enough stellium
|
||||||
@ -58,6 +61,7 @@ items:
|
|||||||
item: ENDER_PEARL
|
item: ENDER_PEARL
|
||||||
|
|
||||||
lore:
|
lore:
|
||||||
|
- '{lore}'
|
||||||
- '&7You cannot teleport as you do not have enough Stellium.'
|
- '&7You cannot teleport as you do not have enough Stellium.'
|
||||||
- '&7Teleporting costs &b{normal_cost}&7/&b{dynamic_cost} &7Stellium.'
|
- '&7Teleporting costs &b{normal_cost}&7/&b{dynamic_cost} &7Stellium.'
|
||||||
|
|
||||||
@ -65,8 +69,8 @@ items:
|
|||||||
display:
|
display:
|
||||||
name: '&a{name}'
|
name: '&a{name}'
|
||||||
item: ENDER_EYE
|
item: ENDER_EYE
|
||||||
|
|
||||||
lore:
|
lore:
|
||||||
|
- '{lore}'
|
||||||
- '&7You can teleport to this waypoint.'
|
- '&7You can teleport to this waypoint.'
|
||||||
- '&7Intermediary waypoints: {intermediary_waypoints}'
|
- '&7Intermediary waypoints: {intermediary_waypoints}'
|
||||||
- '&7Click to teleport for &b{current_cost} &7Stellium.'
|
- '&7Click to teleport for &b{current_cost} &7Stellium.'
|
||||||
|
Loading…
Reference in New Issue
Block a user