Skip to content

Commit

Permalink
Implement custom icon via permission.
Browse files Browse the repository at this point in the history
  • Loading branch information
BONNe committed Jan 3, 2021
1 parent 9f178ac commit 3f7c637
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import world.bentobox.visit.database.object.IslandVisitSettings;
import world.bentobox.visit.panels.ConversationUtils;
import world.bentobox.visit.utils.Constants;
import world.bentobox.visit.utils.Utils;


/**
Expand Down Expand Up @@ -289,13 +290,24 @@ private PanelItem createIslandButton(Island island)
return builder.build();
}

if (VisitAddon.getInstance().getSettings().getIslandIcon() == Material.PLAYER_HEAD)
// Check owner for a specific icon
Material material = Material.matchMaterial(
Utils.getPermissionValue(owner, "visit.icon",
VisitAddon.getInstance().getSettings().getIslandIcon().name()));

if (material == null)
{
// Set material to a default icon from settings.
material = VisitAddon.getInstance().getSettings().getIslandIcon();
}

if (material == Material.PLAYER_HEAD)
{
builder.icon(owner.getName());
}
else
{
builder.icon(VisitAddon.getInstance().getSettings().getIslandIcon());
builder.icon(material);
}

builder.name(this.user.getTranslation(Constants.BUTTONS + "island.name",
Expand Down
15 changes: 13 additions & 2 deletions src/main/java/world/bentobox/visit/panels/player/VisitPanel.java
Original file line number Diff line number Diff line change
Expand Up @@ -428,13 +428,24 @@ private PanelItem createIslandButton(Island island)
return builder.build();
}

if (this.addon.getSettings().getIslandIcon() == Material.PLAYER_HEAD)
// Check owner for a specific icon
Material material = Material.matchMaterial(
Utils.getPermissionValue(owner, "visit.icon",
this.addon.getSettings().getIslandIcon().name()));

if (material == null)
{
// Set material to a default icon from settings.
material = this.addon.getSettings().getIslandIcon();
}

if (material == Material.PLAYER_HEAD)
{
builder.icon(owner.getName());
}
else
{
builder.icon(this.addon.getSettings().getIslandIcon());
builder.icon(material);
}

builder.name(this.user.getTranslation(Constants.BUTTONS + "island.name",
Expand Down
7 changes: 5 additions & 2 deletions src/main/resources/addon.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ main: world.bentobox.visit.VisitAddon
# Version of your addon. Can use maven variables.
version: ${version}
# API version allows to specify minimal BentoBox version for your addon.
api-version: 1.14
api-version: ${bentobox.version}
# Allow to send metric about this addon usage.
metrics: true
# GitHub version check. Will work only for GitHub.
Expand All @@ -31,4 +31,7 @@ permissions:
default: true
'[gamemode].visit.configure':
description: Access to '/[player_command] visit configure' command
default: true
default: true
'visit.icon.STONE':
description: Allows to set a different icon for owner island.
default: false

0 comments on commit 3f7c637

Please sign in to comment.