mirror of
https://github.com/zDevelopers/ImageOnMap.git
synced 2024-11-25 19:45:52 +01:00
Merge pull request #24 from AmauryCarrade/feature-clickable-mapslist-12
Clickable maps list
This commit is contained in:
commit
40a35271ae
@ -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.");
|
||||||
|
|
||||||
|
RawTextPart rawText = new RawText("");
|
||||||
|
rawText = addMap(rawText, mapList.get(0));
|
||||||
|
|
||||||
String sMapList = mapList.get(0).getId();
|
|
||||||
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()
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user