1 | package sh.okx.rankup.requirements; | |
2 | ||
3 | import lombok.Getter; | |
4 | import org.bukkit.entity.Player; | |
5 | import sh.okx.rankup.RankupPlugin; | |
6 | ||
7 | public abstract class Requirement implements Cloneable { | |
8 | protected final RankupPlugin plugin; | |
9 |
1
1. getName : replaced return value with "" for sh/okx/rankup/requirements/Requirement::getName → KILLED |
@Getter |
10 | protected final String name; | |
11 | private String value; | |
12 |
1
1. getSub : replaced return value with "" for sh/okx/rankup/requirements/Requirement::getSub → KILLED |
@Getter |
13 | private String sub; | |
14 | private boolean subRequirement; | |
15 | ||
16 | public Requirement(RankupPlugin plugin, String name) { | |
17 | this(plugin, name, false); | |
18 | } | |
19 | ||
20 | public Requirement(RankupPlugin plugin, String name, boolean subRequirement) { | |
21 | this.plugin = plugin; | |
22 | this.name = name; | |
23 | this.subRequirement = subRequirement; | |
24 | } | |
25 | ||
26 | protected Requirement(Requirement clone) { | |
27 | this.plugin = clone.plugin; | |
28 | this.name = clone.name; | |
29 | this.value = clone.value; | |
30 | this.sub = clone.sub; | |
31 | this.subRequirement = clone.subRequirement; | |
32 | } | |
33 | ||
34 | public void setValue(String value) { | |
35 |
1
1. setValue : negated conditional → KILLED |
if (hasSubRequirement()) { |
36 | String[] parts = value.split(" ", 2); | |
37 |
2
1. setValue : changed conditional boundary → KILLED 2. setValue : negated conditional → KILLED |
if (parts.length < 2) { |
38 | throw new IllegalArgumentException("Amount and sub-requirement not present for requirement '" + getName() + "'. You must use the format '" + getName() + " <sub-requirement> <amount>'"); | |
39 | } | |
40 | ||
41 | this.sub = parts[0]; | |
42 | this.value = parts[1]; | |
43 | } else { | |
44 | this.value = value; | |
45 | } | |
46 | } | |
47 | ||
48 | public String getValueString() { | |
49 |
1
1. getValueString : replaced return value with "" for sh/okx/rankup/requirements/Requirement::getValueString → NO_COVERAGE |
return value; |
50 | } | |
51 | ||
52 | public String[] getValuesString() { | |
53 |
1
1. getValuesString : replaced return value with null for sh/okx/rankup/requirements/Requirement::getValuesString → NO_COVERAGE |
return value.split(" "); |
54 | } | |
55 | ||
56 | public double getValueDouble() { | |
57 |
1
1. getValueDouble : replaced double return with 0.0d for sh/okx/rankup/requirements/Requirement::getValueDouble → KILLED |
return Double.parseDouble(value); |
58 | } | |
59 | ||
60 | public int getValueInt() { | |
61 |
1
1. getValueInt : replaced int return with 0 for sh/okx/rankup/requirements/Requirement::getValueInt → NO_COVERAGE |
return Integer.parseInt(value); |
62 | } | |
63 | ||
64 | public boolean getValueBoolean() { | |
65 |
2
1. getValueBoolean : replaced boolean return with false for sh/okx/rankup/requirements/Requirement::getValueBoolean → NO_COVERAGE 2. getValueBoolean : replaced boolean return with true for sh/okx/rankup/requirements/Requirement::getValueBoolean → NO_COVERAGE |
return Boolean.parseBoolean(value); |
66 | } | |
67 | ||
68 | public String getFullName() { | |
69 |
1
1. getFullName : negated conditional → KILLED |
if (hasSubRequirement()) { |
70 |
1
1. getFullName : replaced return value with "" for sh/okx/rankup/requirements/Requirement::getFullName → KILLED |
return name + "#" + sub; |
71 | } else { | |
72 |
1
1. getFullName : replaced return value with "" for sh/okx/rankup/requirements/Requirement::getFullName → KILLED |
return name; |
73 | } | |
74 | } | |
75 | ||
76 | /** | |
77 | * Check if a player meets this requirement | |
78 | * | |
79 | * @param player the player to check | |
80 | * @return true if they meet the requirement, false otherwise | |
81 | */ | |
82 | public abstract boolean check(Player player); | |
83 | ||
84 | /** | |
85 | * Get the remaining amount needed for <code>Requirement#check(Player)</code> to yield true. | |
86 | * This is not required and is only used in placeholders. | |
87 | * | |
88 | * @param player the player to find the remaining amount of | |
89 | * @return the remaining amount needed. Should be non-negative. | |
90 | */ | |
91 | public double getRemaining(Player player) { | |
92 |
2
1. getRemaining : negated conditional → NO_COVERAGE 2. getRemaining : replaced double return with 0.0d for sh/okx/rankup/requirements/Requirement::getRemaining → NO_COVERAGE |
return check(player) ? 0 : 1; |
93 | } | |
94 | ||
95 | public final boolean hasSubRequirement() { | |
96 |
2
1. hasSubRequirement : replaced boolean return with false for sh/okx/rankup/requirements/Requirement::hasSubRequirement → KILLED 2. hasSubRequirement : replaced boolean return with true for sh/okx/rankup/requirements/Requirement::hasSubRequirement → KILLED |
return subRequirement; |
97 | } | |
98 | ||
99 | public abstract Requirement clone(); | |
100 | ||
101 | public double getTotal(Player player) { | |
102 |
1
1. getTotal : replaced double return with 0.0d for sh/okx/rankup/requirements/Requirement::getTotal → NO_COVERAGE |
return 1; |
103 | } | |
104 | } | |
Mutations | ||
9 |
1.1 |
|
12 |
1.1 |
|
35 |
1.1 |
|
37 |
1.1 2.2 |
|
49 |
1.1 |
|
53 |
1.1 |
|
57 |
1.1 |
|
61 |
1.1 |
|
65 |
1.1 2.2 |
|
69 |
1.1 |
|
70 |
1.1 |
|
72 |
1.1 |
|
92 |
1.1 2.2 |
|
96 |
1.1 2.2 |
|
102 |
1.1 |