Add island::broadcast as a way to announce information to all the island members and owner.

This commit is contained in:
Len 2024-02-17 23:18:12 +01:00
parent 0851570d16
commit 06869871f1
4 changed files with 22 additions and 11 deletions

View File

@ -41,7 +41,7 @@ public class MessageConfiguration implements Configuration {
@ConfigSerializable @Getter @ConfigSerializable @Getter
public static class Level { public static class Level {
String requiredXp = "You need <requiredxp> exp to level up your island."; String requiredXp = "You need <requiredxp> exp to level up your island.";
String upgraded = "Your island has leveled up!"; String upgraded = "Your island has leveled up! It is now <level>.";
} }
} }

View File

@ -4,12 +4,16 @@ import com.alttd.cometskyblock.CometSkyBlockPlugin;
import com.alttd.cometskyblock.request.Request; import com.alttd.cometskyblock.request.Request;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.World; import org.bukkit.World;
import org.bukkit.configuration.file.YamlConfiguration; import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType; import org.bukkit.potion.PotionEffectType;
import org.jetbrains.annotations.NotNull;
import java.io.File; import java.io.File;
import java.util.*; import java.util.*;
@ -209,4 +213,17 @@ public class Island extends YamlConfiguration {
}); });
} }
public void broadCast(String message, TagResolver placeholder) {
Player islandOwner = Bukkit.getPlayer(owner());
if (islandOwner != null)
islandOwner.sendMiniMessage(message, placeholder);
for (UUID uuid : members()) {
Player islandMember = Bukkit.getPlayer(uuid);
if (islandMember == null)
continue;
islandMember.sendMiniMessage(message, placeholder);
}
}
} }

View File

@ -55,7 +55,7 @@ public class UpgradesGUI extends GUIInventory {
return; return;
} }
worldBorder.setSize(worldBorder.getSize() + worldBorderLevel.range()); worldBorder.setSize(worldBorder.getSize() + worldBorderLevel.range());
player.sendRichMessage(islandMessages.worldBorder().upgraded(), Placeholder.parsed("range", "<gold>" + worldBorderLevel.range() + "</gold>")); island.broadCast(islandMessages.worldBorder().upgraded(), Placeholder.parsed("range", "<gold>" + worldBorderLevel.range() + "</gold>"));
decorate(player); decorate(player);
})); }));
// Cobble Gen // Cobble Gen
@ -69,7 +69,7 @@ public class UpgradesGUI extends GUIInventory {
return; return;
} }
island.cobblegenLevel(island.cobblegenLevel() + 1); island.cobblegenLevel(island.cobblegenLevel() + 1);
player.sendRichMessage(islandMessages.cobbeGen().upgraded(), Placeholder.parsed("level", "<gold>" + island.cobblegenLevel() + "</gold>")); island.broadCast(islandMessages.cobbeGen().upgraded(), Placeholder.parsed("level", "<gold>" + island.cobblegenLevel() + "</gold>"));
player.closeInventory(); player.closeInventory();
decorate(player); decorate(player);
})); }));
@ -88,7 +88,7 @@ public class UpgradesGUI extends GUIInventory {
player.setTotalExperience(totalExperience - xp); player.setTotalExperience(totalExperience - xp);
player.setExperienceLevelAndProgress(totalExperience - xp); player.setExperienceLevelAndProgress(totalExperience - xp);
island.level(island.level() + 1); island.level(island.level() + 1);
player.sendRichMessage(islandMessages.level().upgraded()); island.broadCast(islandMessages.level().upgraded(), Placeholder.parsed("level", "<gold>" + island.level() + "</gold>"));
decorate(player); decorate(player);
})); }));
// Difficulty // Difficulty

View File

@ -50,13 +50,7 @@ public class TeleportManager {
Island island = Island.getIsland(location.getWorld().getUID()); Island island = Island.getIsland(location.getWorld().getUID());
if (visit && island.islandId() != 0) { if (visit && island.islandId() != 0) {
for (UUID uuid : members) { island.broadCast("<player> is visiting your island.", null); // TODO - load from config and placeholders.
Player islandMember = Bukkit.getPlayer(uuid);
if (islandMember == null)
continue;
islandMember.sendRichMessage("<player> is visiting your island."); // TODO - load from config and placeholders.
}
} }
player.teleportAsync(location).whenComplete((b, e) -> { player.teleportAsync(location).whenComplete((b, e) -> {