mirror of
https://github.com/GeorgH93/Minepacks.git
synced 2024-12-11 15:07:44 +01:00
Add support for RGB in titles (Closes #151)
This commit is contained in:
parent
18650d561b
commit
7247c5dcf4
@ -17,13 +17,24 @@
|
|||||||
|
|
||||||
package at.pcgamingfreaks.Minepacks.Bukkit.ExtendedAPI;
|
package at.pcgamingfreaks.Minepacks.Bukkit.ExtendedAPI;
|
||||||
|
|
||||||
|
import at.pcgamingfreaks.Bukkit.Message.Message;
|
||||||
import at.pcgamingfreaks.Minepacks.Bukkit.API.Backpack;
|
import at.pcgamingfreaks.Minepacks.Bukkit.API.Backpack;
|
||||||
import at.pcgamingfreaks.Minepacks.Bukkit.API.MinepacksPlayer;
|
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
|
||||||
public interface BackpackExtended extends Backpack
|
public interface BackpackExtended extends Backpack
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
@NotNull MinepacksPlayerExtended getOwner();
|
@NotNull MinepacksPlayerExtended getOwner();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Let a given player open this backpack.
|
||||||
|
*
|
||||||
|
* @param player The player who opens the backpack.
|
||||||
|
* @param editable Defines if the player who has opened the backpack can change the items inside.
|
||||||
|
* @param title Custom title for the backpack (will be shown to the player who opened the backpack.
|
||||||
|
*/
|
||||||
|
void open(@NotNull Player player, boolean editable, @Nullable Message title);
|
||||||
}
|
}
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2020 GeorgH93
|
* Copyright (C) 2021 GeorgH93
|
||||||
*
|
*
|
||||||
* This program is free software: you can redistribute it and/or modify
|
* This program is free software: you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License as published by
|
* it under the terms of the GNU General Public License as published by
|
||||||
@ -18,6 +18,7 @@
|
|||||||
package at.pcgamingfreaks.Minepacks.Bukkit;
|
package at.pcgamingfreaks.Minepacks.Bukkit;
|
||||||
|
|
||||||
import at.pcgamingfreaks.Bukkit.MCVersion;
|
import at.pcgamingfreaks.Bukkit.MCVersion;
|
||||||
|
import at.pcgamingfreaks.Bukkit.Message.Message;
|
||||||
import at.pcgamingfreaks.Bukkit.Util.InventoryUtils;
|
import at.pcgamingfreaks.Bukkit.Util.InventoryUtils;
|
||||||
import at.pcgamingfreaks.Minepacks.Bukkit.Database.Enums.ShrinkApproach;
|
import at.pcgamingfreaks.Minepacks.Bukkit.Database.Enums.ShrinkApproach;
|
||||||
import at.pcgamingfreaks.Minepacks.Bukkit.Database.Helper.InventoryCompressor;
|
import at.pcgamingfreaks.Minepacks.Bukkit.Database.Helper.InventoryCompressor;
|
||||||
@ -46,7 +47,8 @@ public class Backpack implements BackpackExtended
|
|||||||
{
|
{
|
||||||
@Setter(AccessLevel.PACKAGE) private static ShrinkApproach shrinkApproach = ShrinkApproach.COMPRESS;
|
@Setter(AccessLevel.PACKAGE) private static ShrinkApproach shrinkApproach = ShrinkApproach.COMPRESS;
|
||||||
private static Object titleOwn;
|
private static Object titleOwn;
|
||||||
private static String titleOtherFormat;
|
private static Message titleOtherFormat;
|
||||||
|
private final Object titleOtherComponent;
|
||||||
private final String titleOther;
|
private final String titleOther;
|
||||||
@Getter private final MinepacksPlayerData owner;
|
@Getter private final MinepacksPlayerData owner;
|
||||||
private final Map<Player, Boolean> opened = new ConcurrentHashMap<>(); //Thanks Minecraft 1.14
|
private final Map<Player, Boolean> opened = new ConcurrentHashMap<>(); //Thanks Minecraft 1.14
|
||||||
@ -54,9 +56,9 @@ public class Backpack implements BackpackExtended
|
|||||||
private int size;
|
private int size;
|
||||||
private boolean hasChanged;
|
private boolean hasChanged;
|
||||||
|
|
||||||
public static void setTitle(final @NotNull String title, final @NotNull String titleOther)
|
public static void setTitle(final @NotNull Message title, final @NotNull Message titleOther)
|
||||||
{
|
{
|
||||||
titleOwn = InventoryUtils.prepareTitleForOpenInventoryWithCustomTitle(title);
|
titleOwn = MCVersion.isNewerOrEqualThan(MCVersion.MC_1_16) ? title.prepareChatComponent() : InventoryUtils.prepareTitleForOpenInventoryWithCustomTitle(title.prepareChatLegacy());
|
||||||
titleOtherFormat = titleOther;
|
titleOtherFormat = titleOther;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -73,7 +75,9 @@ public Backpack(MinepacksPlayerData owner, int size)
|
|||||||
Minepacks.getInstance().getLogger().warning("Backpacks with more than 6 rows are no longer supported on Minecraft 1.14 and up!");
|
Minepacks.getInstance().getLogger().warning("Backpacks with more than 6 rows are no longer supported on Minecraft 1.14 and up!");
|
||||||
}
|
}
|
||||||
this.owner = owner;
|
this.owner = owner;
|
||||||
titleOther = StringUtils.limitLength(String.format(titleOtherFormat, owner.getName()), 32);
|
titleOther = StringUtils.limitLength(titleOtherFormat.prepareChatLegacy(owner.getName()), 32);
|
||||||
|
if(MCVersion.isNewerOrEqualThan(MCVersion.MC_1_16)) titleOtherComponent = titleOtherFormat.prepareChatComponent(owner.getName());
|
||||||
|
else titleOtherComponent = null;
|
||||||
bp = Bukkit.createInventory(this, size, titleOther);
|
bp = Bukkit.createInventory(this, size, titleOther);
|
||||||
this.size = size;
|
this.size = size;
|
||||||
}
|
}
|
||||||
@ -137,6 +141,7 @@ public void open(final @NotNull Player player, final boolean editable)
|
|||||||
checkResize();
|
checkResize();
|
||||||
opened.put(player, editable);
|
opened.put(player, editable);
|
||||||
if(owner.getPlayer().equals(player)) InventoryUtils.openInventoryWithCustomTitlePrepared(player, bp, titleOwn);
|
if(owner.getPlayer().equals(player)) InventoryUtils.openInventoryWithCustomTitlePrepared(player, bp, titleOwn);
|
||||||
|
else if(titleOtherComponent != null) InventoryUtils.openInventoryWithCustomTitlePrepared(player, bp, titleOtherComponent);
|
||||||
else player.openInventory(bp);
|
else player.openInventory(bp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -153,6 +158,20 @@ public void open(final @NotNull Player player, final boolean editable, final @Nu
|
|||||||
InventoryUtils.openInventoryWithCustomTitle(player, bp, title);
|
InventoryUtils.openInventoryWithCustomTitle(player, bp, title);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void open(@NotNull Player player, boolean editable, @Nullable Message title)
|
||||||
|
{
|
||||||
|
if(title == null)
|
||||||
|
{
|
||||||
|
open(player, editable);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
checkResize();
|
||||||
|
opened.put(player, editable);
|
||||||
|
if(MCVersion.isNewerOrEqualThan(MCVersion.MC_1_16)) InventoryUtils.openInventoryWithCustomTitlePrepared(player, bp, title.prepareChatComponent());
|
||||||
|
else InventoryUtils.openInventoryWithCustomTitle(player, bp, title.prepareChatLegacy());
|
||||||
|
}
|
||||||
|
|
||||||
public void close(Player p)
|
public void close(Player p)
|
||||||
{
|
{
|
||||||
opened.remove(p);
|
opened.remove(p);
|
||||||
|
@ -191,7 +191,7 @@ private void load()
|
|||||||
}
|
}
|
||||||
maxSize = configuration.getBackpackMaxSize();
|
maxSize = configuration.getBackpackMaxSize();
|
||||||
at.pcgamingfreaks.Minepacks.Bukkit.Backpack.setShrinkApproach(configuration.getShrinkApproach());
|
at.pcgamingfreaks.Minepacks.Bukkit.Backpack.setShrinkApproach(configuration.getShrinkApproach());
|
||||||
at.pcgamingfreaks.Minepacks.Bukkit.Backpack.setTitle(configuration.getBPTitle(), configuration.getBPTitleOther());
|
at.pcgamingfreaks.Minepacks.Bukkit.Backpack.setTitle(new Message(configuration.getBPTitle()), new Message(configuration.getBPTitleOther()));
|
||||||
messageNotFromConsole = language.getMessage("NotFromConsole");
|
messageNotFromConsole = language.getMessage("NotFromConsole");
|
||||||
messageNoPermission = language.getMessage("Ingame.NoPermission");
|
messageNoPermission = language.getMessage("Ingame.NoPermission");
|
||||||
messageWorldDisabled = language.getMessage("Ingame.WorldDisabled");
|
messageWorldDisabled = language.getMessage("Ingame.WorldDisabled");
|
||||||
|
Loading…
Reference in New Issue
Block a user