ItemDeductibleRequirement.java

1
package sh.okx.rankup.requirements.requirement;
2
3
import org.bukkit.entity.Player;
4
import org.bukkit.inventory.ItemStack;
5
import org.bukkit.inventory.PlayerInventory;
6
import sh.okx.rankup.RankupPlugin;
7
import sh.okx.rankup.requirements.DeductibleRequirement;
8
import sh.okx.rankup.requirements.Requirement;
9
10
public class ItemDeductibleRequirement extends ItemRequirement implements DeductibleRequirement {
11
12
  public ItemDeductibleRequirement(RankupPlugin plugin, String name) {
13
    super(plugin, name);
14
  }
15
16
  public ItemDeductibleRequirement(ItemDeductibleRequirement clone) {
17
    super(clone);
18
  }
19
20
  @Override
21
  public void apply(Player player, double multiplier) {
22 1 1. apply : Replaced double multiplication with division → NO_COVERAGE
    int count = (int) (getTotal(player) * multiplier);
23
24
    PlayerInventory inventory = player.getInventory();
25
    ItemStack[] contents;
26 1 1. apply : negated conditional → NO_COVERAGE
    if (ItemRequirement.USE_STORAGE_CONTENTS) {
27
      contents = inventory.getStorageContents();
28
    } else {
29
      contents = inventory.getContents();
30
    }
31 5 1. apply : changed conditional boundary → NO_COVERAGE
2. apply : changed conditional boundary → NO_COVERAGE
3. apply : Changed increment from 1 to -1 → NO_COVERAGE
4. apply : negated conditional → NO_COVERAGE
5. apply : negated conditional → NO_COVERAGE
    for (int i = 0; i < contents.length && count > 0; i++) {
32
      ItemStack item = contents[i];
33
34 1 1. apply : negated conditional → NO_COVERAGE
      if (matchItem(item)) {
35 2 1. apply : changed conditional boundary → NO_COVERAGE
2. apply : negated conditional → NO_COVERAGE
        if (count < item.getAmount()) {
36 2 1. apply : Replaced integer subtraction with addition → NO_COVERAGE
2. apply : removed call to org/bukkit/inventory/ItemStack::setAmount → NO_COVERAGE
          item.setAmount(item.getAmount() - count);
37
          count = 0;
38
        } else {
39 1 1. apply : Replaced integer subtraction with addition → NO_COVERAGE
          count -= item.getAmount();
40
          contents[i] = null;
41
        }
42
      }
43
    }
44
45 1 1. apply : negated conditional → NO_COVERAGE
    if (ItemRequirement.USE_STORAGE_CONTENTS) {
46 1 1. apply : removed call to org/bukkit/inventory/PlayerInventory::setStorageContents → NO_COVERAGE
      inventory.setStorageContents(contents);
47
    } else {
48 1 1. apply : removed call to org/bukkit/inventory/PlayerInventory::setContents → NO_COVERAGE
      inventory.setContents(contents);
49
    }
50
51 2 1. apply : changed conditional boundary → NO_COVERAGE
2. apply : negated conditional → NO_COVERAGE
    if (count > 0) {
52
      throw new IllegalStateException("REPORT THIS ERROR TO THE DEV - COULD NOT DEDUCT ALL ITEMS");
53
    }
54
  }
55
56
  @Override
57
  public Requirement clone() {
58 1 1. clone : replaced return value with null for sh/okx/rankup/requirements/requirement/ItemDeductibleRequirement::clone → NO_COVERAGE
    return new ItemDeductibleRequirement(this);
59
  }
60
}

Mutations

22

1.1
Location : apply
Killed by : none
Replaced double multiplication with division → NO_COVERAGE

26

1.1
Location : apply
Killed by : none
negated conditional → NO_COVERAGE

31

1.1
Location : apply
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : apply
Killed by : none
changed conditional boundary → NO_COVERAGE

3.3
Location : apply
Killed by : none
Changed increment from 1 to -1 → NO_COVERAGE

4.4
Location : apply
Killed by : none
negated conditional → NO_COVERAGE

5.5
Location : apply
Killed by : none
negated conditional → NO_COVERAGE

34

1.1
Location : apply
Killed by : none
negated conditional → NO_COVERAGE

35

1.1
Location : apply
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : apply
Killed by : none
negated conditional → NO_COVERAGE

36

1.1
Location : apply
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

2.2
Location : apply
Killed by : none
removed call to org/bukkit/inventory/ItemStack::setAmount → NO_COVERAGE

39

1.1
Location : apply
Killed by : none
Replaced integer subtraction with addition → NO_COVERAGE

45

1.1
Location : apply
Killed by : none
negated conditional → NO_COVERAGE

46

1.1
Location : apply
Killed by : none
removed call to org/bukkit/inventory/PlayerInventory::setStorageContents → NO_COVERAGE

48

1.1
Location : apply
Killed by : none
removed call to org/bukkit/inventory/PlayerInventory::setContents → NO_COVERAGE

51

1.1
Location : apply
Killed by : none
changed conditional boundary → NO_COVERAGE

2.2
Location : apply
Killed by : none
negated conditional → NO_COVERAGE

58

1.1
Location : clone
Killed by : none
replaced return value with null for sh/okx/rankup/requirements/requirement/ItemDeductibleRequirement::clone → NO_COVERAGE

Active mutators

Tests examined


Report generated by PIT 1.7.0