Skip to content

Commit b89dc4d

Browse files
committed
chore: Merge ZoneListCommand and EditCommands
1 parent 272a19c commit b89dc4d

File tree

4 files changed

+46
-84
lines changed

4 files changed

+46
-84
lines changed

src/main/java/com/xpdustry/domination/DominationPlugin.java

+1-5
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,6 @@
2626
import com.xpdustry.distributor.api.command.cloud.MindustryCommandManager;
2727
import com.xpdustry.distributor.api.plugin.AbstractMindustryPlugin;
2828
import com.xpdustry.domination.Zone.Adapter;
29-
import com.xpdustry.domination.commands.EditCommands;
30-
import com.xpdustry.domination.commands.StartCommand;
31-
import com.xpdustry.domination.commands.ZoneListCommand;
3229
import io.leangen.geantyref.TypeToken;
3330
import java.time.Duration;
3431
import java.util.ArrayList;
@@ -95,8 +92,7 @@ public void onClientCommandsRegistration(final CommandHandler handler) {
9592
final var annotations =
9693
new AnnotationParser<>(clientCommands, CommandSender.class, params -> CommandMeta.empty());
9794
annotations.parse(new StartCommand(this));
98-
annotations.parse(new EditCommands(this));
99-
annotations.parse(new ZoneListCommand(this));
95+
annotations.parse(new ZoneCommands(this));
10096
}
10197

10298
public boolean isEnabled() {

src/main/java/com/xpdustry/domination/commands/StartCommand.java src/main/java/com/xpdustry/domination/StartCommand.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,11 @@
1616
* You should have received a copy of the GNU General Public License
1717
* along with this program. If not, see <https://www.gnu.org/licenses/>.
1818
*/
19-
package com.xpdustry.domination.commands;
19+
package com.xpdustry.domination;
2020

2121
import arc.Core;
2222
import arc.util.Strings;
2323
import com.xpdustry.distributor.api.command.CommandSender;
24-
import com.xpdustry.domination.DominationPlugin;
2524
import mindustry.Vars;
2625
import mindustry.game.Gamemode;
2726
import mindustry.net.WorldReloader;

src/main/java/com/xpdustry/domination/commands/EditCommands.java src/main/java/com/xpdustry/domination/ZoneCommands.java

+44-5
Original file line numberDiff line numberDiff line change
@@ -16,26 +16,65 @@
1616
* You should have received a copy of the GNU General Public License
1717
* along with this program. If not, see <https://www.gnu.org/licenses/>.
1818
*/
19-
package com.xpdustry.domination.commands;
19+
package com.xpdustry.domination;
2020

2121
import com.xpdustry.distributor.api.command.CommandSender;
22-
import com.xpdustry.domination.DominationPlugin;
23-
import com.xpdustry.domination.Zone;
2422
import mindustry.Vars;
2523
import org.incendo.cloud.annotation.specifier.Range;
2624
import org.incendo.cloud.annotations.Argument;
2725
import org.incendo.cloud.annotations.Command;
26+
import org.incendo.cloud.annotations.CommandDescription;
2827
import org.incendo.cloud.annotations.Flag;
2928
import org.incendo.cloud.annotations.Permission;
29+
import org.incendo.cloud.annotations.ProxiedBy;
3030

31-
public final class EditCommands {
31+
public final class ZoneCommands {
3232

3333
private final DominationPlugin domination;
3434

35-
public EditCommands(final DominationPlugin domination) {
35+
public ZoneCommands(final DominationPlugin domination) {
3636
this.domination = domination;
3737
}
3838

39+
@Command("domination zone list")
40+
@CommandDescription("Get the data about the zones.")
41+
@ProxiedBy("zones")
42+
public void listZones(final CommandSender sender) {
43+
final var builder = new StringBuilder();
44+
final var captured = domination.getState().getZones().stream()
45+
.map(Zone::getTeam)
46+
.filter(sender.getPlayer().team()::equals)
47+
.count();
48+
builder.append("[orange]");
49+
if (captured == domination.getState().getZones().size()) {
50+
builder.append("Your team is about to capture all the zones :\n");
51+
} else {
52+
builder.append("Your team has [red]")
53+
.append(domination.getState().getZones().size() - captured)
54+
.append("[] more zones to capture :\n");
55+
}
56+
final var iterator = domination.getState().getZones().iterator();
57+
while (iterator.hasNext()) {
58+
final var zone = iterator.next();
59+
builder.append("[white]- Zone at (")
60+
.append(zone.getX() / 8)
61+
.append(", ")
62+
.append(zone.getY() / 8)
63+
.append(") is captured by ")
64+
.append("[#")
65+
.append(zone.getTeam().color)
66+
.append("]")
67+
.append(zone.getTeam().name)
68+
.append("[] at ")
69+
.append(zone.getCapture())
70+
.append("% percent.");
71+
if (iterator.hasNext()) {
72+
builder.append('\n');
73+
}
74+
}
75+
sender.reply(builder.toString());
76+
}
77+
3978
@Command("domination zone radius <x> <y> <radius>")
4079
@Permission("com.xpdustry.domination.zone.edit")
4180
public void setZoneSize(

src/main/java/com/xpdustry/domination/commands/ZoneListCommand.java

-72
This file was deleted.

0 commit comments

Comments
 (0)