Skip to content

Commit 563b895

Browse files
committed
Added SCOREBOARD_DISPLAY in config.yml
Added Placeholders for *current* usage of players for external plugins without knowing the specific arena
1 parent 0fb8add commit 563b895

File tree

4 files changed

+127
-5
lines changed

4 files changed

+127
-5
lines changed

MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/arena/managers/PluginScoreboardManager.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,9 @@ public PluginScoreboardManager(PluginArena arena) {
5353

5454
@Override
5555
public void createScoreboard(IUser user) {
56+
if(!arena.getPlugin().getConfigPreferences().getOption("SCOREBOARD_DISPLAY")) {
57+
return;
58+
}
5659
Player player = user.getPlayer();
5760

5861
FastBoard board = new FastBoard(player) {

MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/handlers/placeholder/PlaceholderManager.java

Lines changed: 119 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public class PlaceholderManager {
4242

4343
public PlaceholderManager(PluginMain plugin) {
4444
this.plugin = plugin;
45-
if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) {
45+
if(Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) {
4646
plugin.getDebugger().debug(plugin.getPluginMessagePrefix() + "Hooking into PlaceholderAPI");
4747
new PAPIPlaceholders(plugin);
4848
}
@@ -139,28 +139,143 @@ public String getValue(IPluginArena arena) {
139139
return Integer.toString(arena.getTimer());
140140
}
141141
});
142+
registerPlaceholder(new Placeholder("timer_pretty", Placeholder.PlaceholderType.ARENA, Placeholder.PlaceholderExecutor.PLACEHOLDER_API) {
143+
@Override
144+
public String getValue(Player player, IPluginArena arena) {
145+
return convertSecondsToTime(arena.getTimer());
146+
}
147+
148+
@Override
149+
public String getValue(IPluginArena arena) {
150+
return convertSecondsToTime(arena.getTimer());
151+
}
152+
153+
public String convertSecondsToTime(int oldseconds) {
154+
int hours = oldseconds / 3600;
155+
int minutes = (oldseconds % 3600) / 60;
156+
int seconds = oldseconds % 60;
157+
if(hours > 0) {
158+
return String.format("%02d:%02d:%02d", hours, minutes, seconds);
159+
} else if(minutes > 0) {
160+
return String.format("%02d:%02d", minutes, seconds);
161+
} else {
162+
return String.format("%02d", seconds);
163+
}
164+
}
165+
});
142166
registerPlaceholder(new Placeholder("user_kit", Placeholder.PlaceholderExecutor.ALL) {
143167
@Override
144168
public String getValue(Player player) {
145-
if (!plugin.getConfigPreferences().getOption("KITS")) {
169+
if(!plugin.getConfigPreferences().getOption("KITS")) {
146170
return null;
147171
}
148172
return plugin.getUserManager().getUser(player).getKit().getName();
149173
}
150174

151175
@Override
152176
public String getValue(Player player, IPluginArena arena) {
153-
if (!plugin.getConfigPreferences().getOption("KITS")) {
177+
if(!plugin.getConfigPreferences().getOption("KITS")) {
154178
return null;
155179
}
156180
return plugin.getUserManager().getUser(player).getKit().getName();
157181
}
158182
});
183+
184+
185+
//get player specific details
186+
registerPlaceholder(new Placeholder("current_arena_id", Placeholder.PlaceholderType.GLOBAL, Placeholder.PlaceholderExecutor.PLACEHOLDER_API) {
187+
@Override
188+
public String getValue(Player player) {
189+
IPluginArena playerArena = plugin.getArenaRegistry().getArena(player);
190+
return playerArena != null ? playerArena.getId() : "";
191+
}
192+
193+
@Override
194+
public String getValue() {
195+
return "";
196+
}
197+
});
198+
registerPlaceholder(new Placeholder("arena_current_state", Placeholder.PlaceholderType.GLOBAL, Placeholder.PlaceholderExecutor.PLACEHOLDER_API) {
199+
@Override
200+
public String getValue(Player player) {
201+
IPluginArena playerArena = plugin.getArenaRegistry().getArena(player);
202+
if(playerArena != null) {
203+
return playerArena.getArenaState().toString().toLowerCase();
204+
}
205+
return "";
206+
}
207+
208+
@Override
209+
public String getValue() {
210+
return "";
211+
}
212+
});
213+
registerPlaceholder(new Placeholder("arena_current_name", Placeholder.PlaceholderType.GLOBAL, Placeholder.PlaceholderExecutor.PLACEHOLDER_API) {
214+
@Override
215+
public String getValue(Player player) {
216+
IPluginArena playerArena = plugin.getArenaRegistry().getArena(player);
217+
if(playerArena != null) {
218+
return playerArena.getMapName();
219+
}
220+
return "";
221+
}
222+
223+
@Override
224+
public String getValue() {
225+
return "";
226+
}
227+
});
228+
registerPlaceholder(new Placeholder("arena_current_players", Placeholder.PlaceholderType.GLOBAL, Placeholder.PlaceholderExecutor.PLACEHOLDER_API) {
229+
@Override
230+
public String getValue(Player player) {
231+
IPluginArena playerArena = plugin.getArenaRegistry().getArena(player);
232+
if(playerArena != null) {
233+
return Integer.toString(playerArena.getPlayers().size());
234+
}
235+
return "";
236+
}
237+
238+
@Override
239+
public String getValue() {
240+
return "";
241+
}
242+
});
243+
registerPlaceholder(new Placeholder("arena_current_max_players", Placeholder.PlaceholderType.GLOBAL, Placeholder.PlaceholderExecutor.PLACEHOLDER_API) {
244+
@Override
245+
public String getValue(Player player) {
246+
IPluginArena playerArena = plugin.getArenaRegistry().getArena(player);
247+
if(playerArena != null) {
248+
return Integer.toString(playerArena.getMaximumPlayers());
249+
}
250+
return "";
251+
}
252+
253+
@Override
254+
public String getValue() {
255+
return "";
256+
}
257+
});
258+
registerPlaceholder(new Placeholder("arena_current_timer", Placeholder.PlaceholderType.GLOBAL, Placeholder.PlaceholderExecutor.PLACEHOLDER_API) {
259+
@Override
260+
public String getValue(Player player) {
261+
IPluginArena playerArena = plugin.getArenaRegistry().getArena(player);
262+
if(playerArena != null) {
263+
return Integer.toString(playerArena.getTimer());
264+
}
265+
return "";
266+
}
267+
268+
@Override
269+
public String getValue() {
270+
return "";
271+
}
272+
});
273+
159274

160275
}
161276

162277
public void registerPlaceholder(Placeholder placeholder) {
163-
switch (placeholder.getPlaceholderExecutor()) {
278+
switch(placeholder.getPlaceholderExecutor()) {
164279
case PLACEHOLDER_API:
165280
registeredPAPIPlaceholders.add(placeholder);
166281
break;

MiniGamesBox Classic/src/main/java/plugily/projects/minigamesbox/classic/preferences/ConfigOption.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public class ConfigOption implements IConfigOption {
3838
options.put("DEBUG", new ConfigOption("Debug", false, true));
3939
options.put("DEV_DEBUG", new ConfigOption("Developer-Mode", false, true));
4040
options.put("BOSSBAR", new ConfigOption("Bossbar.Display", true, true));
41+
options.put("SCOREBOARD_DISPLAY", new ConfigOption("Scoreboard.Display", true, true));
4142
options.put("BUNGEEMODE", new ConfigOption("Bungee-Mode", false, true));
4243
options.put("INVENTORY_MANAGER", new ConfigOption("Inventory-Manager", true, true));
4344
options.put("BLOCKED_LEAVE_COMMAND", new ConfigOption("Block.In-Game.Leave", false, true));

MiniGamesBox Classic/src/main/resources/config.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ Bossbar:
2323
# Interval in seconds between messages
2424
Interval: 10
2525

26+
# Should we display the scoreboard ingame?
27+
Scoreboard:
28+
Display: true
2629

2730
# Should we hook into bungeecord? (If you wanna use arena per server option)
2831
# This option will let you access bungee.yml and its options.
@@ -210,4 +213,4 @@ Update-Notifier:
210213
# You edited it, huh? Next time hurt yourself!
211214
Do-Not-Edit:
212215
File-Version: 1
213-
Core-Version: 6
216+
Core-Version: 7

0 commit comments

Comments
 (0)