Merge pull request #24 from AmauryCarrade/feature-clickable-mapslist-12

Clickable maps list
This commit is contained in:
Amaury Carrade 2016-05-21 19:08:38 +02:00
commit 40a35271ae

View File

@ -21,8 +21,15 @@ package fr.moribus.imageonmap.commands.maptool;
import fr.moribus.imageonmap.commands.IoMCommand; import fr.moribus.imageonmap.commands.IoMCommand;
import fr.moribus.imageonmap.map.ImageMap; import fr.moribus.imageonmap.map.ImageMap;
import fr.moribus.imageonmap.map.MapManager; import fr.moribus.imageonmap.map.MapManager;
import fr.moribus.imageonmap.map.PosterMap;
import fr.zcraft.zlib.components.commands.CommandException; import fr.zcraft.zlib.components.commands.CommandException;
import fr.zcraft.zlib.components.commands.CommandInfo; import fr.zcraft.zlib.components.commands.CommandInfo;
import fr.zcraft.zlib.components.rawtext.RawText;
import fr.zcraft.zlib.components.rawtext.RawTextPart;
import fr.zcraft.zlib.tools.items.ItemStackBuilder;
import fr.zcraft.zlib.tools.text.RawMessage;
import org.bukkit.ChatColor;
import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import java.util.List; import java.util.List;
@ -42,13 +49,35 @@ public class ListCommand extends IoMCommand
return; return;
} }
info(mapList.size() + " maps found."); player.sendMessage(ChatColor.WHITE + "" + ChatColor.BOLD + mapList.size() + " maps found.");
String sMapList = mapList.get(0).getId(); RawTextPart rawText = new RawText("");
rawText = addMap(rawText, mapList.get(0));
for(int i = 1, c = mapList.size(); i < c; i++) for(int i = 1, c = mapList.size(); i < c; i++)
{ {
sMapList += "§7,§r" + mapList.get(i).getId(); rawText = rawText.then(", ").color(ChatColor.GRAY);
rawText = addMap(rawText, mapList.get(i));
} }
player.sendMessage(sMapList);
RawMessage.send(player, rawText.build());
}
private RawTextPart<?> addMap(RawTextPart<?> rawText, ImageMap map)
{
final String size = map.getType() == ImageMap.Type.SINGLE ? "1×1" : ((PosterMap) map).getColumnCount() + "×" + ((PosterMap) map).getRowCount();
return rawText
.then(map.getId())
.color(ChatColor.WHITE)
.command(GetCommand.class, map.getId())
.hover(new ItemStackBuilder(Material.MAP)
.title(ChatColor.GREEN + "" + ChatColor.BOLD + map.getName())
.lore(ChatColor.GRAY + map.getId() + ", " + size)
.lore("")
.lore(ChatColor.WHITE + "Click" + ChatColor.GRAY + " to get this map")
.hideAttributes()
.item()
);
} }
} }