/** * Set a boss bar with a given color, style, percentage to a given * player. Also you can enable the darken sky, the boss music ambiance * and enable fog to a given player * * @param message Message on the top of the bar * @param color Color of the bar * @param style Style of the bar * @param progress Filling percentage * @param darkenSky Enable darken sky * @param playMusic Enable boss music * @param createFog Enable the fog */ public static Pair<UUID, BossBar> getBar(String message, BarColor color, BarStyle style, double progress, boolean darkenSky, boolean playMusic, boolean createFog) { BossBar bossBar = Bukkit.createBossBar(message, color, style); bossBar.setProgress(progress < 0 ? 0D : progress / 100.0D); if (darkenSky) bossBar.addFlag(BarFlag.DARKEN_SKY); if (playMusic) bossBar.addFlag(BarFlag.PLAY_BOSS_MUSIC); if (createFog) bossBar.addFlag(BarFlag.CREATE_FOG); UUID random = UUID.randomUUID(); bossBars.put(random, bossBar); return Pair.of(random, bossBar); }
public void start() { if (!player.getPlayer().isOnline()) return; state = State.STARTING; Alarm.getScheduler().schedule(this, 0, 1); player.getPlayer().getPlayer().sendMessage(ChatColor.GREEN + "Get Ready..."); this.displayBar = Bukkit.createBossBar(displayName, BarColor.BLUE, BarStyle.SEGMENTED_20, new BarFlag[0]); displayBar.setProgress(1f); displayBar.addPlayer(player.getPlayer().getPlayer()); this.timeLeft = coolTime; isCooling = true; Bukkit.getPluginManager().registerEvents(this, QuestManagerPlugin.questManagerPlugin); }
public void start() { //Set up top bar inv.setItem(0, this.reelOffIcon); // for (int i = 1; i < 4; i++) { // inv.setItem(i, this.meterOnIcon); // } // for (int i = 4; i < 8; i++) { // inv.setItem(i, this.meterOffIcon); // } inv.setItem(8, this.reelOnIcon); displayBar = Bukkit.createBossBar("Fishing Progress", BarColor.BLUE, BarStyle.SEGMENTED_20, new BarFlag[0]); displayBar.setProgress(1f); displayBar.addPlayer(player); stressBar = Bukkit.createBossBar("Line Stress", BarColor.GREEN, BarStyle.SEGMENTED_10, new BarFlag[0]); stressBar.setProgress(lineStress); stressBar.addPlayer(player); //start filling the 'sea' //time is time to fill all in 5 seconds, or .2 if less than that (it would be too fast!) Alarm.getScheduler().schedule(this, 0, Math.max(.2, 5 / (9 * this.waterRows))); }
@Override public void addPlayer(Player player) { if(!views.containsKey(player)) { final BossBar view = bossBarFactory.createBossBar(renderer.render(title, player), color, style, flags.toArray(new BarFlag[flags.size()])); view.setVisible(visibile); view.addPlayer(player); views.put(player, view); } }
@Override public void update(BaseComponent title, double progress, BarColor color, BarStyle style, Set<BarFlag> flags) { this.title = title; this.progress = progress; this.color = color; this.style = style; this.flags.clear(); this.flags.addAll(flags); views.entrySet().forEach(entry -> entry.getValue().update(renderer.render(title, entry.getKey()), progress, color, style, flags)); }
@Override public void tick() { super.tick(); if (ticks == 0) { updatePlayerStates(GameState.ASSIGN, null); } if (ticks == 1) {//Assign List<UUID> toAssign = new ArrayList<>(game.players); //Pick a murderer updateRole(toAssign.remove(random.nextInt(toAssign.size())), Role.MURDERER); //Pick a weapon bystander updateRole(toAssign.remove(random.nextInt(toAssign.size())), Role.WEAPON); //Make all other players bystanders while (!toAssign.isEmpty()) { updateRole(toAssign.remove(0), Role.DEFAULT); } } if (ticks == 2) {//Send role messages for (UUID uuid : game.players) { PlayerData data = Murder.instance.playerManager.getData(uuid); //Titles TitleAPI.reset(data.getPlayer()); TitleAPI.sendTimings(data.getPlayer(), 10, (Murder.instance.startTime * 20) - 5, 10); TitleAPI.sendSubTitle(data.getPlayer(), new TextComponent(data.role.getSubTitle())); TitleAPI.sendTitle(data.getPlayer(), new TextComponent(data.role.getTitle())); //BossBar TextComponent textComponent = new TextComponent(String.format(data.role.getBarText(), data.nameTag)); data.bossBar = Bukkit.createBossBar(textComponent.getText(), data.role.getBarColor(), data.role.getBarStyle(), BarFlag.DARKEN_SKY); data.bossBar.addPlayer(data.getPlayer()); } } ticks++; }
public void start() { if (!player.getPlayer().isOnline()) return; state = State.STARTING; Alarm.getScheduler().schedule(this, 0, 1); player.getPlayer().getPlayer().sendMessage(ChatColor.GREEN + "Get Ready..."); this.displayBar = Bukkit.createBossBar(displayName, BarColor.BLUE, BarStyle.SEGMENTED_20, new BarFlag[0]); displayBar.setProgress(1f); displayBar.addPlayer(player.getPlayer().getPlayer()); Bukkit.getPluginManager().registerEvents(this, QuestManagerPlugin.questManagerPlugin); }
@Override public void alarm(Integer key) { if (gameState == State.STARTING) { if (key >= startingSpots) { if (player.isOnline()) player.sendMessage(ChatColor.GREEN + "Go!"); this.gameState = State.RUNNING; displayBar = Bukkit.createBossBar("Ore Stability", BarColor.BLUE, BarStyle.SEGMENTED_20, new BarFlag[0]); displayBar.setProgress(1f); displayBar.addPlayer(player); return; } //pick a spots to reveal int cur = RANDOM.nextInt(depth * 9); if (backend.get(cur) == BlockMaterial.ORE || backend.get(cur) == BlockMaterial.AIR) { alarm(key); } else { //else reveal it if (player.isOnline()) player.playSound(player.getLocation(), HIT_SOUND_STONE, 1, 1.5f); for (int j = 0; j < 3; j++) hitBlock(cur); } Alarm.getScheduler().schedule(this, key + 1, .5); } }
public void start() { if (gameState != State.STOPPED) { return; } //generate blocks. //first block is the button inv.setItem(0, SMELT_BUTTON_ICON); ItemStack slot; for (int i = 1; i < 9 * rows; i++) { if (RANDOM.nextDouble() < metalRatio) { //it's metal. pick one slot = inputs.get(RANDOM.nextInt(inputs.size())); generatedMetals++; } else { slot = SLAG_ICON; this.slagSlots.add(i); } inv.setItem(i, slot); backend.put(i, slot); } displayBar = Bukkit.createBossBar("Ore Temperature", BarColor.RED, BarStyle.SEGMENTED_20, new BarFlag[0]); displayBar.setProgress(0f); displayBar.addPlayer(player); player.getPlayer().sendMessage(ChatColor.GREEN + "Begin"); player.playSound(player.getLocation(), START_SOUND, 1, 1); this.gameState = State.SOLID; currentClicks = 0; currentHeats = 0; discardedMetals = 0; }
@Override @Nullable protected BossBar[] get(Event e) { BossBar bar = Bukkit.createBossBar(Skellett.cc("&a&lSkellett bossbar"), BarColor.GREEN, BarStyle.SOLID, new BarFlag[0]); if (flag != null) { bar = Bukkit.createBossBar(Skellett.cc("&a&lSkellett bossbar"), BarColor.GREEN, BarStyle.SOLID, flag.getSingle(e)); } return new BossBar[]{bar}; }
@SuppressWarnings("unchecked") @Override public boolean init(Expression<?>[] e, int arg1, Kleenean arg2, ParseResult arg3) { flag = (Expression<BarFlag>) e[0]; bar = (Expression<BossBar>) e[1]; return true; }
@Override @Nullable protected BarFlag[] get(Event e) { if (bar == null) { return null; } ArrayList<BarFlag> flags = new ArrayList<BarFlag>(); for (BarFlag flag : BarFlag.values()) { if (bar.getSingle(e).hasFlag(flag)) { flags.add(flag); } } return flags.toArray(new BarFlag[flags.size()]); }
@SuppressWarnings("unchecked") public boolean init(Expression<?>[] e, int matchedPattern, Kleenean isDelayed, ParseResult parser) { bar = (Expression<BossBar>) e[0]; flag = (Expression<BarFlag>) e[1]; if (parser.mark == 2) {boo = false;} return true; }
/** * Add a flag to a bossbar in the BossBarManager through the stored ID. * * @param id The ID text for the bossbar. * @param flag The BarFlag to be added. */ public void addFlag(String id, BarFlag flag) { BossBar bar = barMap.get(id); if (bar != null) { bar.addFlag(flag); barMap.put(id, bar); } }
/** * Remove a flag from a bossbar in the BossBarManager through the stored ID. * * @param id The ID text for the bossbar. * @param flag The BarFlag to be added. */ public void removeFlag(String id, BarFlag flag) { BossBar bar = barMap.get(id); if (bar != null) { bar.removeFlag(flag); barMap.put(id, bar); } }
public LocalizedBossBar(ChatMessage bossBarTitle, BarColor color, BarStyle style, BarFlag... flags) { this.bossBarTitle = bossBarTitle; this.color = color; this.style = style; this.shown = true; this.flags = flags.length > 0 ? EnumSet.of(flags[0], flags):EnumSet.noneOf(BarFlag.class); }
public void removeFlag(BarFlag flag) { if (this.flags.contains(flag)) { this.flags.remove(flag); for (BossBar bossbar : playerBossBars.values()) { bossbar.setFlags(this.flags); } } }
public void addFlag(BarFlag flag) { if (!this.flags.contains(flag)) { this.flags.remove(flag); for (BossBar bossbar : playerBossBars.values()) { bossbar.setFlags(this.flags); } } }
public void addPlayer(Player player) { if (!playerBossBars.containsKey(player)) { BossBar bossBar = Bukkit.createBossBar(getTitle(player.getLocale()), this.color, this.style, this.flags.toArray(new BarFlag[flags.size()])); bossBar.setVisible(this.shown); bossBar.addPlayer(player); playerBossBars.put(player, bossBar); } }
public static UUID addBroadcastedBossBar(ChatMessage bossBarTitle, BarColor color, BarStyle style, Boolean shown, BarFlag... flags) { UUID id = UUID.randomUUID(); LocalizedBossBar bossBar = new LocalizedBossBar(bossBarTitle, color, style, flags); bossBar.setVisible(shown); for (Player player : Bukkit.getOnlinePlayers()) { bossBar.addPlayer(player); } broadcastedBossBars.put(id, bossBar); return id; }
public CraftBossBar(String title, BarColor color, BarStyle style, BarFlag... flags) { this.flags = flags.length > 0 ? EnumSet.of(flags[0], flags) : EnumSet.noneOf(BarFlag.class); this.color = color; this.style = style; handle = new BossBattleServer( CraftChatMessage.fromString(title, true)[0], convertColor(color), convertStyle(style) ); updateFlags(); }
public static BossBar bossBar(String title, BarColor color, BarStyle style, BarFlag... flags){ BossBar bb = WCCore.getInstance().getServer().createBossBar(title, color, style, flags); bb.setTitle(title); return bb; }
default Set<BarFlag> barFlags(Player viewer) { return Collections.emptySet(); }
@Override public BossBar createBossBar(BaseComponent title, BarColor color, BarStyle style, BarFlag... flags) { return server.createBossBar(title, color, style, flags); }
@Override public boolean hasFlag(BarFlag flag) { return this.flags.contains(flag); }
@Override public void setFlags(Set<BarFlag> flags) { this.flags.clear(); this.flags.addAll(flags); views.values().forEach(view -> view.setFlags(flags)); }
@Override public void removeFlag(BarFlag flag) { this.flags.remove(flag); views.values().forEach(view -> view.removeFlag(flag)); }
@Override public void addFlag(BarFlag flag) { this.flags.add(flag); views.values().forEach(view -> view.addFlag(flag)); }
@Override public BossBar createBossBar(String title, BarColor color, BarStyle style, BarFlag... flags) { // TODO Auto-generated method stub throw new UnimplementedOperationException(); }
@Override public BossBar createBossBar( String s, BarColor barColor, BarStyle barStyle, BarFlag... barFlags ) { throw new UnsupportedOperationException(); }
@Override public BossBar createBossBar(String title, BarColor color, BarStyle style, BarFlag... flags) { return null; // TODO: Link with Sponge in some way or another. }
@Override public BarFlag fromVGL(BossBarModifier bossBarModifier) { return BarFlag.valueOf(bossBarModifier.name()); }
@Override public BossBarModifier toVGL(BarFlag barFlag) { return BossBarModifier.valueOf(barFlag.name()); }
@Override public BossBar createBossBar(String arg0, BarColor arg1, BarStyle arg2, BarFlag... arg3) { // TODO Auto-generated method stub return null; }
@Override public BossBar createBossBar(String title, BarColor color, BarStyle style, BarFlag... flags) { return null; }
@Override public BossBar createBossBar(String title, BarColor color, BarStyle style, BarFlag... flags) { throw new UnsupportedOperationException(); }
@Override public BossBar createBossBar(String s, BarColor barColor, BarStyle barStyle, BarFlag... barFlags) { return null; }
@Override public BossBar createBossBar(String arg0, BarColor arg1, BarStyle arg2, BarFlag... arg3) { throw Pokkit.unsupported(); }
@SuppressWarnings("unchecked") @Override public boolean init(Expression<?>[] e, int arg1, Kleenean arg2, ParseResult arg3) { flag = (Expression<BarFlag>) e[0]; return true; }