Compare commits
4 Commits
3c5842a92c
...
92f9e732a1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
92f9e732a1 | ||
|
|
95b54d1a03 | ||
|
|
05a63b9a52 | ||
|
|
137e5a5125 |
|
|
@ -42,6 +42,8 @@ public class OnPlayerOnlineStatus implements Listener {
|
|||
resetPlayer(player);
|
||||
handleRunningGame(player);
|
||||
handleDiscordLink(player);
|
||||
gameManager.getTeamPlayer(player).ifPresent(teamPlayer ->
|
||||
player.teleportAsync(teamPlayer.getTeam().getSpawnLocation()));
|
||||
}
|
||||
|
||||
private void handleRunningGame(Player player) {
|
||||
|
|
|
|||
|
|
@ -30,10 +30,8 @@ public class OtherGameEvents implements Listener {
|
|||
@EventHandler
|
||||
public void onBlockBreak(BlockBreakEvent event) {
|
||||
if (gameManager.getGamePhase().isEmpty()) {
|
||||
log.info("no game phases");
|
||||
return;
|
||||
}
|
||||
log.info(event.getBlock().getType().toString());
|
||||
if (!Tag.SNOW.isTagged(event.getBlock().getType())) {
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
|
|
|
|||
|
|
@ -88,6 +88,11 @@ public class SnowballEvent implements Listener {
|
|||
public void onSnowballThrown(ProjectileLaunchEvent event) {
|
||||
handleSnowballThrown(event, (shooter, shooterTeamPlayer, snowball) -> {
|
||||
GameClass shooterClass = shooterTeamPlayer.getGameClass();
|
||||
if (shooterClass == null) {
|
||||
shooter.sendRichMessage("<red>You appear to not have selected a class, please do so by going to spawn and using /ctf selectclass</red>");
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
shooter.setCooldown(Material.SNOWBALL, shooterClass.getThrowTickSpeed());
|
||||
shooterTeamPlayer.increaseStat(Stat.SNOWBALLS_THROWN);
|
||||
if (shooterClass instanceof Mage mage) {
|
||||
|
|
|
|||
|
|
@ -81,10 +81,18 @@ public class Flag implements Runnable {
|
|||
if (flagCarrier != null) {
|
||||
return;
|
||||
}
|
||||
Team team = teamPlayer.getTeam();
|
||||
flagLocation.getNearbyPlayers(5).forEach(nearbyPlayer -> {
|
||||
if (nearbyPlayer.getUniqueId().equals(player.getUniqueId())) {
|
||||
return;
|
||||
}
|
||||
Optional<TeamPlayer> nearByTeamPlayer = gameManager.getTeamPlayer(nearbyPlayer);
|
||||
if (nearByTeamPlayer.isEmpty()) {
|
||||
return;
|
||||
} else if (nearByTeamPlayer.get().getTeam().equals(team)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Vector direction = nearbyPlayer.getLocation().toVector().subtract(flagLocation.toVector()).normalize();
|
||||
direction.setY(0.2);
|
||||
nearbyPlayer.setVelocity(direction.multiply(5));
|
||||
|
|
|
|||
|
|
@ -13,9 +13,11 @@ import net.kyori.adventure.text.minimessage.MiniMessage;
|
|||
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.attribute.Attribute;
|
||||
import org.bukkit.attribute.AttributeInstance;
|
||||
import org.bukkit.command.ConsoleCommandSender;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
|
@ -88,6 +90,15 @@ public class EndedPhase implements GamePhaseExecutor {
|
|||
messages.add(miniMessage.deserialize("<green><team> has won with <score> captures!</green>",
|
||||
Placeholder.component("team", winner.getName()),
|
||||
Placeholder.parsed("score", String.valueOf(highestScore))));
|
||||
ConsoleCommandSender consoleSender = Bukkit.getConsoleSender();
|
||||
winner.getPlayers().forEach(teamPlayer -> {
|
||||
OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(teamPlayer.getUuid());
|
||||
String name = offlinePlayer.getName();
|
||||
if (name == null) {
|
||||
return;
|
||||
}
|
||||
Bukkit.dispatchCommand(consoleSender, String.format("lp user %s permission settemp ctf.victory.%s true 14d", name, winner.getId()));
|
||||
});
|
||||
if (wins.size() <= 1) {
|
||||
return messages;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import com.alttd.ctf.game.GameManager;
|
|||
import com.alttd.galaxy.discord.Bot;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import net.dv8tion.jda.api.JDA;
|
||||
import net.dv8tion.jda.api.Permission;
|
||||
import net.dv8tion.jda.api.entities.*;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
|
|
@ -68,7 +67,7 @@ public class DiscordTeam {
|
|||
log.info("Unable to remove team role from server owner");
|
||||
return;
|
||||
}
|
||||
member.getGuild().removeRoleFromMember(member, role).queue(ignored -> kickFromVoiceIfNeeded(member));
|
||||
member.getGuild().removeRoleFromMember(member, role).queue();
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -82,21 +81,7 @@ public class DiscordTeam {
|
|||
member.getRoles().stream()
|
||||
.filter(otherRole -> otherRole.getIdLong() == otherTeam.getDiscordRole())
|
||||
.forEach(otherRole -> member.getGuild().removeRoleFromMember(member, otherRole).queue()));
|
||||
member.getGuild().addRoleToMember(member, role).queue(ignored -> kickFromVoiceIfNeeded(member));
|
||||
member.getGuild().addRoleToMember(member, role).queue();
|
||||
});
|
||||
}
|
||||
|
||||
private void kickFromVoiceIfNeeded(@NotNull Member member) {
|
||||
GuildVoiceState voiceState = member.getVoiceState();
|
||||
if (voiceState == null || !voiceState.inAudioChannel()) {
|
||||
return;
|
||||
}
|
||||
AudioChannel channel = voiceState.getChannel();
|
||||
if (channel == null) {
|
||||
return;
|
||||
}
|
||||
if (!member.hasPermission(channel, Permission.VOICE_CONNECT)) {
|
||||
member.getGuild().kickVoiceMember(member).queue();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,3 @@
|
|||
#Sat Mar 01 19:29:28 CET 2025
|
||||
buildNumber=102
|
||||
#Sat Mar 01 22:40:35 CET 2025
|
||||
buildNumber=110
|
||||
version=0.1
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user