use of io.icker.factions.database.Member in project factions by ickerio.
the class ClaimCommand method add.
public static int add(CommandContext<ServerCommandSource> context) throws CommandSyntaxException {
ServerCommandSource source = context.getSource();
ServerPlayerEntity player = source.getPlayer();
ServerWorld world = player.getWorld();
ChunkPos chunkPos = world.getChunk(player.getBlockPos()).getPos();
String dimension = world.getRegistryKey().getValue().toString();
Member member = Member.get(player.getUuid());
Claim existingClaim = Claim.get(chunkPos.x, chunkPos.z, dimension);
if (existingClaim == null) {
Faction faction = member.getFaction();
faction.addClaim(chunkPos.x, chunkPos.z, dimension);
new Message("%s claimed chunk (%d, %d)", player.getName().asString(), chunkPos.x, chunkPos.z).send(faction);
return 1;
}
String owner = existingClaim.getFaction().name == member.getFaction().name ? "Your" : "Another";
new Message(owner + " faction already owns this chunk").fail().send(player, false);
return 0;
}
use of io.icker.factions.database.Member in project factions by ickerio.
the class KickMemberCommand method run.
@Override
public int run(CommandContext<ServerCommandSource> context) throws CommandSyntaxException {
ServerPlayerEntity target = EntityArgumentType.getPlayer(context, "player");
ServerCommandSource source = context.getSource();
ServerPlayerEntity player = source.getPlayer();
if (target.getUuid().equals(player.getUuid())) {
new Message("You cannot kick yourself").format(Formatting.RED).send(player, false);
return 0;
}
Faction faction = Member.get(player.getUuid()).getFaction();
for (Member member : faction.getMembers()) if (member.uuid.equals(target.getUuid())) {
if (Member.get(player.getUuid()).getRank() == Member.Rank.CO_OWNER && (member.getRank() == Member.Rank.CO_OWNER || member.getRank() == Member.Rank.OWNER)) {
new Message("You can only kick members with a lower rank than yours").format(Formatting.RED).send(player, false);
return 0;
}
member.remove();
context.getSource().getServer().getPlayerManager().sendCommandTree(player);
new Message("Kicked " + target.getName().getString()).send(player, false);
return 1;
}
new Message("That player is not a member of your faction");
return 0;
}
use of io.icker.factions.database.Member in project factions by ickerio.
the class LeaveCommand method run.
@Override
public int run(CommandContext<ServerCommandSource> context) throws CommandSyntaxException {
ServerCommandSource source = context.getSource();
ServerPlayerEntity player = source.getPlayer();
Member member = Member.get(player.getUuid());
Faction faction = member.getFaction();
new Message(player.getName().asString() + " left").send(faction);
member.remove();
context.getSource().getServer().getPlayerManager().sendCommandTree(player);
if (faction.getMembers().size() == 0) {
faction.remove();
} else {
FactionEvents.adjustPower(faction, -Config.MEMBER_POWER);
}
return 1;
}
use of io.icker.factions.database.Member in project factions by ickerio.
the class MapCommand method show.
public static int show(CommandContext<ServerCommandSource> context) throws CommandSyntaxException {
ServerCommandSource source = context.getSource();
ServerPlayerEntity player = source.getPlayer();
ServerWorld world = player.getWorld();
ChunkPos chunkPos = world.getChunk(player.getBlockPos()).getPos();
String dimension = world.getRegistryKey().getValue().toString();
Member member = Member.get(player.getUuid());
Faction faction = member == null ? null : member.getFaction();
// Print the header of the faction map.
new Message("---------------[").format(Formatting.GRAY).add(new Message(" F MAP ").format(Formatting.AQUA)).add(new Message("]---------------").format(Formatting.GRAY)).send(player, false);
Map<String, Formatting> factions = new HashMap<>();
// Create and fill an array with the faction map.
MutableText[] rows = new MutableText[11];
for (int z = -5; z <= 5; z++) {
MutableText row = new LiteralText("");
for (int x = -6; x <= 6; x++) {
Claim claim = Claim.get(chunkPos.x + x, chunkPos.z + z, dimension);
if (x == 0 && z == 0) {
row.append(new LiteralText(" ■").formatted(Formatting.YELLOW));
} else if (claim == null) {
row.append(new LiteralText(" ■").formatted(Formatting.GRAY));
} else if (faction != null && claim.getFaction().name.equals(faction.name)) {
row.append(new LiteralText(" ■").formatted(Formatting.GREEN));
} else {
Faction owner = claim.getFaction();
factions.put(owner.name, owner.color);
row.append(new LiteralText(" ■").formatted(owner.color).styled((style) -> style.withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new LiteralText(owner.name)))));
}
}
rows[z + 5] = row;
}
// Attach the legend to the rows and send them to the player.
player.sendMessage(rows[0].append(new LiteralText(" ■").formatted(Formatting.GRAY)).append(" Wilderness"), false);
player.sendMessage(rows[1].append(new LiteralText(" ■").formatted(Formatting.GREEN)).append(" Your faction"), false);
player.sendMessage(rows[2].append(new LiteralText(" ■").formatted(Formatting.YELLOW)).append(" Your position"), false);
int i = 3;
for (Map.Entry<String, Formatting> entry : factions.entrySet()) {
if (i >= rows.length)
break;
player.sendMessage(rows[i].append(new LiteralText(" ■").formatted(entry.getValue())).append(" " + entry.getKey()), false);
i++;
}
// Send remaining rows.
for (; i < rows.length; i++) {
player.sendMessage(rows[i], false);
}
// Print the footer of the faction map.
new Message("---------------------------------------").format(Formatting.GRAY).send(player, false);
return 1;
}
use of io.icker.factions.database.Member in project factions by ickerio.
the class TransferOwnerCommand method run.
@Override
public int run(CommandContext<ServerCommandSource> context) throws CommandSyntaxException {
ServerPlayerEntity target = EntityArgumentType.getPlayer(context, "player");
ServerCommandSource source = context.getSource();
ServerPlayerEntity player = source.getPlayer();
if (target.getUuid().equals(player.getUuid())) {
new Message("You cannot transfer ownership to yourself").format(Formatting.RED).send(player, false);
return 0;
}
Faction faction = Member.get(player.getUuid()).getFaction();
for (Member member : faction.getMembers()) if (member.uuid.equals(target.getUuid())) {
member.updateRank(Member.Rank.OWNER);
Member.get(player.getUuid()).updateRank(Member.Rank.CO_OWNER);
context.getSource().getServer().getPlayerManager().sendCommandTree(player);
context.getSource().getServer().getPlayerManager().sendCommandTree(target);
new Message("Transferred ownership to " + target.getName().getString()).send(player, false);
return 1;
}
new Message(target.getName().getString() + " is not in your faction").format(Formatting.RED).send(player, false);
return 0;
}
Aggregations