Search in sources :

Example 1 with Home

use of io.icker.factions.database.Home in project factions by ickerio.

the class HomeCommand method go.

public static int go(CommandContext<ServerCommandSource> context) throws CommandSyntaxException {
    ServerCommandSource source = context.getSource();
    ServerPlayerEntity player = source.getPlayer();
    Faction faction = Member.get(player.getUuid()).getFaction();
    Home home = faction.getHome();
    if (home == null) {
        new Message("No faction home set").fail().send(player, false);
        return 0;
    }
    ServerWorld world = player.getServer().getWorld(RegistryKey.of(Registry.WORLD_KEY, new Identifier(home.level)));
    if (checkLimitToClaim(faction, world, new BlockPos(home.x, home.y, home.z))) {
        new Message("Cannot warp home to an unclaimed chunk").fail().send(player, false);
        return 0;
    }
    DamageTracker tracker = player.getDamageTracker();
    if (tracker.getMostRecentDamage() == null || tracker.getTimeSinceLastAttack() > Config.SAFE_TICKS_TO_WARP) {
        player.teleport(world, home.x, home.y, home.z, home.yaw, home.pitch);
        new Message("Warped to faction home").send(player, false);
    } else {
        new Message("Cannot warp while in combat").fail().send(player, false);
    }
    return 1;
}
Also used : ServerWorld(net.minecraft.server.world.ServerWorld) Identifier(net.minecraft.util.Identifier) DamageTracker(net.minecraft.entity.damage.DamageTracker) Message(io.icker.factions.util.Message) ServerPlayerEntity(net.minecraft.server.network.ServerPlayerEntity) BlockPos(net.minecraft.util.math.BlockPos) Home(io.icker.factions.database.Home) ServerCommandSource(net.minecraft.server.command.ServerCommandSource) Faction(io.icker.factions.database.Faction)

Example 2 with Home

use of io.icker.factions.database.Home in project factions by ickerio.

the class HomeCommand method set.

public static int set(CommandContext<ServerCommandSource> context) throws CommandSyntaxException {
    ServerCommandSource source = context.getSource();
    ServerPlayerEntity player = source.getPlayer();
    Faction faction = Member.get(player.getUuid()).getFaction();
    if (checkLimitToClaim(faction, player.getWorld(), player.getBlockPos())) {
        new Message("Cannot set home to an unclaimed chunk").fail().send(player, false);
        return 0;
    }
    Home home = faction.setHome(player.getX(), player.getY(), player.getZ(), player.getHeadYaw(), player.getPitch(), player.getWorld().getRegistryKey().getValue().toString());
    new Message("%s set home to %.2f, %.2f, %.2f", player.getName().asString(), home.x, home.y, home.z).send(faction);
    return 1;
}
Also used : Message(io.icker.factions.util.Message) ServerPlayerEntity(net.minecraft.server.network.ServerPlayerEntity) Home(io.icker.factions.database.Home) ServerCommandSource(net.minecraft.server.command.ServerCommandSource) Faction(io.icker.factions.database.Faction)

Aggregations

Faction (io.icker.factions.database.Faction)2 Home (io.icker.factions.database.Home)2 Message (io.icker.factions.util.Message)2 ServerCommandSource (net.minecraft.server.command.ServerCommandSource)2 ServerPlayerEntity (net.minecraft.server.network.ServerPlayerEntity)2 DamageTracker (net.minecraft.entity.damage.DamageTracker)1 ServerWorld (net.minecraft.server.world.ServerWorld)1 Identifier (net.minecraft.util.Identifier)1 BlockPos (net.minecraft.util.math.BlockPos)1