Skip to content

Commit 795017b

Browse files
committed
Follow Gemini review and fix build
1 parent 0a5ae2a commit 795017b

2 files changed

Lines changed: 25 additions & 6 deletions

File tree

eternalcombat-plugin/src/main/java/com/eternalcode/combat/CombatPlugin.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
2020
import com.eternalcode.combat.fight.controller.FightBypassCreativeController;
2121
import com.eternalcode.combat.fight.controller.FightBypassPermissionController;
2222
import com.eternalcode.combat.fight.controller.FightInventoryController;
23+
import com.eternalcode.combat.fight.controller.FightMessageController;
24+
import com.eternalcode.combat.fight.controller.FightTagController;
25+
import com.eternalcode.combat.fight.controller.FightUnTagController;
2326
import com.eternalcode.combat.fight.death.DeathFlareController;
2427
import com.eternalcode.combat.fight.death.DeathLightningController;
2528
import com.eternalcode.combat.fight.drop.DropKeepInventoryService;
@@ -190,7 +193,7 @@ public void onEnable() {
190193
new FightBypassPermissionController(server, pluginConfig),
191194
new FightBypassCreativeController(server, pluginConfig),
192195
new FightActionBlockerController(this.fightManager, noticeService, pluginConfig, server),
193-
new FightPearlController(pluginConfig.pearl, noticeService, this.fightManager, this.fightPearlService),
196+
new FightPearlController(pluginConfig, noticeService, this.fightManager, this.fightPearlService),
194197
new DeathFlareController(pluginConfig, server, scheduler, this),
195198
new DeathLightningController(pluginConfig, server),
196199
new UpdaterNotificationController(updaterService, pluginConfig, this.audienceProvider, miniMessage),

eternalcombat-plugin/src/main/java/com/eternalcode/combat/time/DurationFormatter.java

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -90,12 +90,18 @@ public String format(Duration duration) {
9090
private static Token[] parsePattern(String pattern) {
9191
List<Token> tokens = new ArrayList<>(DurationUnit.values().length);
9292

93-
for (int i = 0; i < pattern.length(); i++) {
93+
int i = 0;
94+
95+
while (i < pattern.length()) {
9496
if (pattern.charAt(i) != '%') {
97+
i++;
9598
continue;
9699
}
97100

98-
int start = ++i;
101+
i++; // skip %
102+
103+
int start = i;
104+
99105
while (i < pattern.length() && Character.isLetter(pattern.charAt(i))) {
100106
i++;
101107
}
@@ -115,17 +121,27 @@ private static Token[] parsePattern(String pattern) {
115121
i++;
116122
}
117123

118-
if (pattern.charAt(i) != '{') {
124+
if (i >= pattern.length() || pattern.charAt(i) != '{') {
119125
throw new IllegalArgumentException("Missing plural definition");
120126
}
121127

122-
int blockStart = ++i;
123-
while (pattern.charAt(i) != '}') {
128+
i++; // skip {
129+
130+
int blockStart = i;
131+
132+
while (i < pattern.length() && pattern.charAt(i) != '}') {
124133
i++;
125134
}
126135

136+
if (i >= pattern.length()) {
137+
throw new IllegalArgumentException("Unclosed plural definition");
138+
}
139+
127140
String block = pattern.substring(blockStart, i);
141+
i++; // skip }
142+
128143
int split = block.indexOf('|');
144+
129145
if (split == -1) {
130146
throw new IllegalArgumentException("Plural must be singular|plural");
131147
}

0 commit comments

Comments
 (0)