Made CycleClick handle right click

This commit is contained in:
Florian CUNY 2018-06-02 21:42:14 +02:00
parent d7b2c70b78
commit 08e11e90fa
2 changed files with 21 additions and 4 deletions

View File

@ -21,7 +21,6 @@ public class CycleClick implements PanelItem.ClickHandler {
private BSkyBlock plugin = BSkyBlock.getInstance();
private final String id;
/**
* @param id - the flag id that will be adjusted by this click
*/
@ -46,6 +45,13 @@ public class CycleClick implements PanelItem.ClickHandler {
island.setFlag(flag, rm.getRankUpValue(currentRank));
}
user.getWorld().playSound(user.getLocation(), Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1F, 1F);
} else if (click.equals(ClickType.RIGHT)) {
if (currentRank == RanksManager.VISITOR_RANK) {
island.setFlag(flag, RanksManager.OWNER_RANK);
} else {
island.setFlag(flag, rm.getRankDownValue(currentRank));
}
user.getWorld().playSound(user.getLocation(), Sound.BLOCK_STONE_BUTTON_CLICK_ON, 1F, 1F);
}
// Apply change to panel
panel.getInventory().setItem(slot, flag.toPanelItem(plugin, user).getItem());

View File

@ -208,10 +208,21 @@ public class CycleClickTest {
@Test
public void testOnRightClick() {
final int SLOT = 5;
CycleClick udc = new CycleClick("LOCK");
// Right click - should do nothing
assertTrue(udc.onClick(panel, user, ClickType.RIGHT, 0));
Mockito.verify(island, Mockito.never()).setFlag(Mockito.eq(flag), Mockito.anyInt());
// Rank starts at member
// Right click
assertTrue(udc.onClick(panel, user, ClickType.RIGHT, SLOT));
Mockito.verify(island).setFlag(Mockito.eq(flag), Mockito.eq(RanksManager.VISITOR_RANK));
Mockito.verify(flag).toPanelItem(Mockito.any(), Mockito.any());
Mockito.verify(inv).setItem(Mockito.eq(SLOT), Mockito.any());
// Check rollover
// Clicking when Visitor should go to Owner
when(island.getFlag(Mockito.any())).thenReturn(RanksManager.VISITOR_RANK);
assertTrue(udc.onClick(panel, user, ClickType.RIGHT, SLOT));
Mockito.verify(island).setFlag(Mockito.eq(flag), Mockito.eq(RanksManager.OWNER_RANK));
Mockito.verify(flag, Mockito.times(2)).toPanelItem(Mockito.any(), Mockito.any());
Mockito.verify(inv, Mockito.times(2)).setItem(Mockito.eq(SLOT), Mockito.any());
}
@Test