Compare commits

...

2 Commits

Author SHA1 Message Date
Teriuihi 4f0a4eff6f Update flag capture flow to notify players visually
Added a title notification for players when a team can capture the flag, improving communication during gameplay.
2025-02-15 04:10:52 +01:00
Teriuihi c02bda6ea7 Add slowness effect to flag carriers and clear it on reset
Flag carriers now receive a slowness effect to hinder movement while holding the flag. The effect is cleared when the flag carrier is reset to ensure consistent gameplay behavior. Updated build number to reflect these changes.
2025-02-15 04:07:07 +01:00
2 changed files with 11 additions and 4 deletions

View File

@ -11,7 +11,6 @@ import lombok.extern.slf4j.Slf4j;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.minimessage.MiniMessage;
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
import net.kyori.adventure.title.Title;
import org.bukkit.*;
@ -22,6 +21,8 @@ import org.bukkit.boss.KeyedBossBar;
import org.bukkit.entity.Player;
import org.bukkit.inventory.EquipmentSlot;
import org.bukkit.inventory.ItemStack;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import java.util.*;
import java.util.concurrent.CompletableFuture;
@ -83,6 +84,7 @@ public class Flag implements Runnable {
player.getInventory().setItem(EquipmentSlot.HEAD, new ItemStack(teamPlayer.getTeam().getFlagMaterial()));
Bukkit.getScheduler().runTask(main, () -> flagLocation.getBlock().setType(Material.AIR));
flagCarrier = player;
player.addPotionEffect(new PotionEffect(PotionEffectType.SLOWNESS, PotionEffect.INFINITE_DURATION, 0, false, false));
notifyAboutCapture();
resetFlag();
}
@ -142,7 +144,10 @@ public class Flag implements Runnable {
} else {
winningTeam = optionalTeam.get();
spawnFlag(winningTeam.getFlagMaterial());
//TODO stop capture and let ppl know they can now capture the flag
updateDisplay();
Title title = Title.title(MiniMessage.miniMessage().deserialize("Team <team> can capture the flag",
Placeholder.component("team", winningTeam.getName())), Component.empty());
Bukkit.getOnlinePlayers().forEach(player -> player.showTitle(title));
}
}
@ -351,6 +356,8 @@ public class Flag implements Runnable {
}
public void resetFlagCarrier() {
final Player player = flagCarrier;
Bukkit.getScheduler().runTask(main, player::clearActivePotionEffects);
flagCarrier = null;
winningTeam = null;
particleTrail.clear();

View File

@ -1,3 +1,3 @@
#Sat Feb 15 03:47:20 CET 2025
buildNumber=50
#Sat Feb 15 04:08:38 CET 2025
buildNumber=55
version=0.1