Skip to content

Commit f1e1782

Browse files
committed
Init Commit
1 parent 9e69c9c commit f1e1782

File tree

2 files changed

+66
-0
lines changed

2 files changed

+66
-0
lines changed

src/main/java/ch/njol/skript/conditions/CondIsWearing.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ public boolean check(Event event) {
5959
return false; // spigot nullability, no identifier as to why this occurs
6060

6161
ItemStack[] contents = Arrays.stream(EquipmentSlot.values())
62+
.filter(entity::canUseEquipmentSlot)
6263
.map(equipment::getItem)
6364
.toArray(ItemStack[]::new);
6465

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
package org.skriptlang.skript.test.tests.regression;
2+
3+
import ch.njol.skript.lang.Condition;
4+
import ch.njol.skript.lang.util.ContextlessEvent;
5+
import ch.njol.skript.test.runner.SkriptJUnitTest;
6+
import ch.njol.skript.variables.Variables;
7+
import org.bukkit.Material;
8+
import org.bukkit.entity.Player;
9+
import org.bukkit.inventory.EntityEquipment;
10+
import org.bukkit.inventory.EquipmentSlot;
11+
import org.bukkit.inventory.ItemStack;
12+
import org.easymock.EasyMock;
13+
import org.junit.Assert;
14+
import org.junit.Before;
15+
import org.junit.Test;
16+
17+
public class MissingCheckIfEntityCanUseSlot7524Test extends SkriptJUnitTest {
18+
19+
private Player player;
20+
private EntityEquipment equipment;
21+
private Condition isWearingCondition;
22+
23+
@Before
24+
public void setup() {
25+
player = EasyMock.niceMock(Player.class);
26+
equipment = EasyMock.niceMock(EntityEquipment.class);
27+
28+
isWearingCondition = Condition.parse("{_player} is wearing diamond chestplate", null);
29+
if (isWearingCondition == null)
30+
throw new IllegalStateException();
31+
}
32+
33+
@Test
34+
public void test() {
35+
ContextlessEvent event = ContextlessEvent.get();
36+
Variables.setVariable("player", player, event, true);
37+
38+
EasyMock.expect(player.isValid()).andStubReturn(true);
39+
EasyMock.expect(player.getEquipment()).andReturn(equipment);
40+
41+
EasyMock.expect(player.canUseEquipmentSlot(EquipmentSlot.CHEST)).andReturn(true);
42+
EasyMock.expect(player.canUseEquipmentSlot(EquipmentSlot.LEGS)).andReturn(true);
43+
EasyMock.expect(player.canUseEquipmentSlot(EquipmentSlot.FEET)).andReturn(true);
44+
EasyMock.expect(player.canUseEquipmentSlot(EquipmentSlot.HEAD)).andReturn(true);
45+
EasyMock.expect(player.canUseEquipmentSlot(EquipmentSlot.HAND)).andReturn(true);
46+
EasyMock.expect(player.canUseEquipmentSlot(EquipmentSlot.OFF_HAND)).andReturn(true);
47+
EasyMock.expect(player.canUseEquipmentSlot(EquipmentSlot.BODY)).andReturn(false);
48+
49+
EasyMock.expect(equipment.getItem(EquipmentSlot.CHEST)).andReturn(new ItemStack(Material.DIAMOND_CHESTPLATE));
50+
EasyMock.expect(equipment.getItem(EquipmentSlot.LEGS)).andReturn(new ItemStack(Material.DIAMOND_LEGGINGS));
51+
EasyMock.expect(equipment.getItem(EquipmentSlot.FEET)).andReturn(new ItemStack(Material.DIAMOND_BOOTS));
52+
EasyMock.expect(equipment.getItem(EquipmentSlot.HEAD)).andReturn(new ItemStack(Material.DIAMOND_HELMET));
53+
EasyMock.expect(equipment.getItem(EquipmentSlot.HAND)).andReturn(new ItemStack(Material.DIAMOND_SWORD));
54+
EasyMock.expect(equipment.getItem(EquipmentSlot.OFF_HAND)).andReturn(new ItemStack(Material.DIAMOND_SHOVEL));
55+
56+
EasyMock.replay(player, equipment);
57+
58+
isWearingCondition.run(event);
59+
60+
EasyMock.verify(player, equipment);
61+
62+
Assert.assertTrue(isWearingCondition.evaluate(event).isTrue());
63+
}
64+
65+
}

0 commit comments

Comments
 (0)