SG: Reborn Premium | The Ultimate SurvivalGames/BattleRoyale Plugin for Networks (RECODE COMPLETED!) icon

SG: Reborn Premium | The Ultimate SurvivalGames/BattleRoyale Plugin for Networks (RECODE COMPLETED!) -----

The reborn of Survival Games. Ultimate Survival Games plugin, the only one you will ever need.



[​IMG]
Developer API Documentation
Hook your own plugins into SG Reborn matches, stats, seasons, boosters, maps, placeholders and UI.
[/CENTER]
Getting Started
  • Accessing the API — the public static helpers live in dev.bytecore.sgreborn.api.SGRebornAPI.
    java
    // Static helpers (no service manager needed)
    String stateName = SGRebornAPI.getSegment();
    String mapName = SGRebornAPI.getMapName();
    int aliveCount = SGRebornAPI.getAlivePlayerCount();
  • Optional helper APIs:
    dev.bytecore.sgreborn.api.AchievementAPI
    dev.bytecore.sgreborn.api.ChallengesAPI
    dev.bytecore.sgreborn.api.achievements.AbstractAchievementAPI
    dev.bytecore.sgreborn.api.challenges.AbstractChallenge

SGRebornAPI — Static Helper Methods
(Package: dev.bytecore.sgreborn.api)

  • Game / Segment
    • String getSegment() — Current segment name (e.g. Lobby, Grace, In-Game, Deathmatch)
    • int getDuration() — Elapsed seconds since match start
    • String getFormattedDuration() — Formatted elapsed time (e.g. 07:31)
    • int getGraceDuration() — Configured grace period length (sec)
    • int getTimeLeft() — Contextual time left for current segment (sec)
  • Map / Deathmatch
    • String getMapName() — Selected map name (or “Not chosen yet”)
    • String getMapFormattedName() — Display/formatted map name
    • java.util.List<org.bukkit.Location> getDeathmatchSpawns() — DM spawn locations (specific DM)
    • java.util.List<String> getCommonDeathmatchSpawns() — Common DM labeled spawns
    • String getCommonDeathmatchCenter() — Center (“x, y, z”) for common DM
    • int getCommonDeathmatchRadius() — Radius for common DM
  • Players & Teams
    • java.util.List<java.util.UUID> getAlivePlayers()
    • int getAlivePlayerCount()
    • java.util.List<java.util.UUID> getSpectators()
    • int getSpectatorCount()
    • java.util.List<java.util.UUID> getPlayersPlayed() — All who participated this match
    • dev.bytecore.sgreborn.teams.Team getWinner() — Winning team (null if not decided)
    • java.util.UUID getMVP(), double getMVPDamage() — MVP candidate + total damage
    • java.util.UUID getWorstPlayer(), double getWorstPlayerDamage() — “worst” metric
    • int getTeamCount()
    • java.util.List<dev.bytecore.sgreborn.teams.Team> getTeams()
  • Air Drops
    • boolean isAirDropActive()
    • org.bukkit.Location getRecentAirDropLocation()
    • boolean hasAirDropFallen(org.bukkit.Location loc)
    • int getAirDropProgress(org.bukkit.Location loc) — 0..100 progress
    • int getTimeUntilNextAirDrop() — seconds
    • int getAirDropClickThreshold()
  • Rules / Toggles
    • int getChestRefillStatus() — 0..100 or status enum mapped to int
    • int getHealthStatus() — 0..100 (health HUD helper)
    • boolean isFnsEnabled() — Flint&Steel toggle
    • boolean isHungerEnabled()
  • Profiles
    • dev.bytecore.sgreborn.profile.Profile getProfile(org.bukkit.entity.Player player)

Achievements API
(Packages: dev.bytecore.sgreborn.api, dev.bytecore.sgreborn.api.achievements)

  • Register + Complete
    java
    // 1) Define your achievement (extend AbstractAchievementAPI)
    public final class Kill100Achievement extends AbstractAchievementAPI {
    public Kill100Achievement() {
    super(
    "Mass Slayer", "kill_100",
    java.util.Arrays.asList("&7Get &e100 &7kills in total."),
    "Reach 100 total kills", 250 /exp/, 150 /points/
    );
    }
    [USER=32110]@Override[/USER] public void registerEvents(org.bukkit.plugin.Plugin plugin) {
    org.bukkit.Bukkit.getPluginManager().registerEvents(this, plugin);
    }
    @org.bukkit.event.EventHandler
    public void onKill(org.bukkit.event.entity.PlayerDeathEvent e) {
    // check killer’s stat and call complete when ready
    if (/ stat >= 100 /) SGAchievementAPI.completeAchievement(e.getEntity().getKiller(), this);
    }
    }
    // 2) Register somewhere during onEnable():
    SGAchievementAPI.registerAchievement(new Kill100Achievement());
  • LookupAchievement SGAchievementAPI.getAchievementByID(String id)

Challenges API
(Packages: dev.bytecore.sgreborn.api, dev.bytecore.sgreborn.api.challenges)

  • Define a challenge
    java
    public final class Open50Chests extends AbstractChallenge {
    public Open50Chests() {
    super(
    "Loot Goblin",
    java.util.Arrays.asList("&7Open &e50 &7chests."),
    dev.bytecore.sgreborn.challenges.ChallengeType.DAILY,
    50, // target
    150, 100, 0,// exp, points, tokens
    243600L // time limit (sec)
    );
    }
    [USER=32110]@Override[/USER] public void listen(org.bukkit.event.Event event) {
    // increment based on your event logic
    }
    }
    // Register:
    SGChallengesAPI.registerChallenge(new Open50Chests());
  • Control & Data
    • void SGChallengesAPI.startChallenge(org.bukkit.entity.Player)
    • void SGChallengesAPI.finishChallenge(org.bukkit.entity.Player)
    • void SGChallengesAPI.failChallenge(org.bukkit.entity.Player)
    • dev.bytecore.sgreborn.challenges.ChallengeData SGChallengesAPI.getChallengeData(java.util.UUID)

Public Events (listen with @EventHandler)
(Package: dev.bytecore.sgreborn.api.events)

  • AchievementCompletionEvent — when a player completes an achievement.
    • Fields: Player player, Achievement achievement, boolean cancelled
    • Cancelable to delay downstream reward logic.
  • AirDropOpenEvent — fired when a player opens an air drop crate.
    • Fields: Player player, Location location (cloned), UUID dropId
  • ArmorEquipEvent — universal armor equip/unequip detector (drag, shift, hotbar, dispenser, break, death…).
    • Fields: Player player, CustomEventManager.ArmorType type, EquipMethod equipType, ItemStack oldArmor, ItemStack newArmor
    • Cancelable (prevent the equip).
  • BossDeathEvent — custom event boss died.
    • Fields: Entity boss, Player killer, java.util.Map<Player,Double> damageMap, java.util.List<Player> participants
  • BountyPlaceEvent — player places a bounty on a target.
    • Fields: Player player, Player target, int amount, int total, boolean cancelled
    • Cancelable (deny placement).
  • BountyClaimEvent — (stubbed) emitted when a bounty is claimed (class exists for forward compatibility).
  • WinBountyEvent — when a winner claims bounty points on match end.
    • Fields: Player winner, Profile winnerProfile, int bounty, String reason, boolean resetBounty, boolean cancelled
    • Cancelable and bounty fields are mutable.

  • ChallengeStartEvent / ChallengeIncrementEvent / ChallengeCheckCompletionEvent / ChallengeCompletionEvent / ChallengeFailEvent / ChallengeResetEvent
    • Common fields: Player player, Challenge challenge
    • Extras: int progress (Increment), boolean completed (CheckCompletion)
    • Only Completion is cancelable if you need to gate the reward flow.
  • ChestLootEvent — a player loots a chest tier.
    • Fields: Player player, org.bukkit.block.Block chestBlock, ChestManager.ChestTier chestTier, boolean cancelled
    • Cancelable to block tier loot.
  • QuestAssignEvent — quest assigned to a player.
    • Fields: Player player, QuestProgress quest
  • QuestCompleteEvent — quest progress reaches goal.
    • Fields: Player player, QuestProgress quest
  • QuestClaimEvent — quest rewards claimed.
    • Fields: Player player, QuestProgress quest
  • QuestStartEvent — (stubbed) placeholder class for future extensions.
  • GameStartEvent — match transitions to In-Game.
    • Fields: Player player (context source), boolean cancelled
    • Cancelable if you must delay the start.
  • PlayerGameStartEvent — per-player game start event.
    • Fields: Player player, boolean cancelled
  • GameEndEvent — match ends (winners decided).
    • Fields: java.util.List<Player> players (context — winners/participants depending on mode), boolean cancelled
  • GameDeathmatchEvent — deathmatch phase started.
    • Fields: Player player (context), boolean cancelled
  • GameStateChangeEvent — segment changes (Lobby/Starting/Pregame/Grace/In-Game/PreDM/DM/End).
    • Fields: Segment oldState, Segment newState, boolean cancelled
    • Cancelable for advanced control.
  • GameEliminationEvent — a victim is eliminated.
    • Fields: Player killer, Player victim, boolean cancelled
  • GameWinEvent — a player (or team representative) wins.
    • Fields: Player winner, boolean cancelled
  • KitUnlockEvent — player unlocks a kit.
    • Fields: Player player, ItemManager.KitsItem kit, Source source (COINS, PERMISSION, GRANT, OTHER), int pricePaid
  • PlayerGainExpEvent — EXP added to player (points system).
    • Fields: Player player, Type type (gain reason), int amount
    • Cancelable (stop the gain).
  • PlayerGlobalBoostEvent — marker for global boost changes (class present; used internally for future extensions).

  • PlayerJumpEvent — normalized “jump” event (based on statistic increment).
    • Fields: Player player, PlayerStatisticIncrementEvent cause
    • Cancelable (prevents the base statistic increment).
  • PlayerLevelUpEvent — SG level changed.
    • Fields: Player player, int newLevel, int currentXP, int xpToNextLevel, int xpGained
  • PlayerSettingChangeEvent — user setting toggled via standard UI.
    • Fields: Player player, Settings setting, boolean newValue
  • SettingChangeEvent — low-level setting change (includes cause).
    • Fields: Player player, Profile profile, Settings setting, boolean oldValue, boolean newValue, Cause cause (COMMAND, MENU, API, LOAD, OTHER)
    • Async-allowed (handlers should resync if needed).
  • PlayerVoteEvent — player voted or changed vote (map/DM).
    • Fields: Player player, Vote vote (vote topic), VoteArg newChoice, [USER=241773]@Nullable[/USER] VoteArg oldChoice, int weight
    • Cancelable (block vote).
  • PlaytimeEvent — time-based progression tick (class present; used internally for playtime tracking).


[*] SeasonAdvanceEvent — season id changes.
  • Fields: int oldSeasonId, int newSeasonId
[*] SponsorPlayerEvent — a sponsor action gives an item to target.
  • Fields: Player sponsor, Player target, ItemStack item, int points
[/LIST]
Example: Listening to Events
Code (Java):
public final class MyAddon extends JavaPlugin implements Listener {
[USER = 32110 ]@Override [ /USER ] public void onEnable ( ) {
Bukkit. getPluginManager ( ). registerEvents ( this, this ) ;
}

@EventHandler
public void onState (GameStateChangeEvent e ) {
getLogger ( ). info ( "SG state: " + e. getOldState ( ) + " -> " + e. getNewState ( ) ) ;
}

@EventHandler (ignoreCancelled = true )
public void onVote (PlayerVoteEvent e ) {
if (e. getNewChoice ( ). name ( ). contains ( "FORBIDDEN" ) ) e. setCancelled ( true ) ;
}

@EventHandler
public void onTierLoot (ChestLootEvent e ) {
if (e. getChestTier ( ). name ( ). equalsIgnoreCase ( "TIER_3" ) ) {
e. setCancelled ( true ) ; // block OP tier in your hub
}
}
}


Placeholders Documentation
This section was aligned to the current codebase (PAPIHook, BuiltInPlaceholders, ScoreboardDataUtil).


PAPI PLACEHOLDERS (PlaceholderAPI)
  • General rule: PAPI identifiers use the form %sgreborn_identifier%. Example: %sgreborn_game_state%.
  • Important correction: the current generic stat/tempstat placeholders in code use player_stat<stat> and player_tempstat<tempstat> without an extra underscore after stat / tempstat.

Game / Match / Map
  • %sgreborn_game_state%, %sgreborn_game_matchid%
  • %sgreborn_game_duration_raw%, %sgreborn_game_duration_formatted%
  • %sgreborn_game_map%, %sgreborn_map_name%, %sgreborn_map_author%, %sgreborn_map_link%, %sgreborn_world_name%
  • %sgreborn_game_alive_players_int%, %sgreborn_game_spectator_players_int%, %sgreborn_game_spectator_players_list%
  • %sgreborn_match_mode%, %sgreborn_segment_name%, %sgreborn_alive%, %sgreborn_spectators%, %sgreborn_total_players%, %sgreborn_required_players%

Team / Tournament Context
  • %sgreborn_team_name%, %sgreborn_player_team_name%, %sgreborn_team_color%
  • %sgreborn_team_alive%, %sgreborn_team_members_total%, %sgreborn_team_members_alive_list%, %sgreborn_team_points%
  • %sgreborn_enemy_team_name%, %sgreborn_enemy_team_alive%
  • %sgreborn_round%, %sgreborn_max_rounds%, %sgreborn_alive_teams%, %sgreborn_online_teams%

Player / Profile
  • %sgreborn_player%, %sgreborn_player_name%, %sgreborn_player_displayname%, %sgreborn_uuid%
  • %sgreborn_player_level%, %sgreborn_player_level_display%, %sgreborn_player_level_display_nice%
  • %sgreborn_player_current_kit%, %sgreborn_player_mmr_rank%, %sgreborn_player_total_kdr%, %sgreborn_player_real_displayname%
  • %sgreborn_player_damage_amount%, %sgreborn_player_winrate%, %sgreborn_player_chests%
  • %sgreborn_player_team%, %sgreborn_player_team_color%, %sgreborn_player_team_fakecolor%

Built-in mirrored player stats (via PAPI too)
  • %sgreborn_wins%, %sgreborn_sg_wins%, %sgreborn_played%, %sgreborn_sg_played%
  • %sgreborn_kills%, %sgreborn_deaths%, %sgreborn_assists%, %sgreborn_points%, %sgreborn_mmr%, %sgreborn_experience%
  • %sgreborn_bounty%, %sgreborn_lives%, %sgreborn_tribute_number%, %sgreborn_current_kills%, %sgreborn_current_assists%, %sgreborn_current_chests%, %sgreborn_tournament_credits%, %sgreborn_kdr%

Dynamic stat / tempstat / setting syntaxes
  • %sgreborn_player_stat<stats_enum_lowercase>%
  • Examples: %sgreborn_player_statkills%, %sgreborn_player_statsg_wins%, %sgreborn_player_statdamage_given%, %sgreborn_player_statmmr%
  • %sgreborn_player_tempstat<tempstats_enum_lowercase>%
  • Examples: %sgreborn_player_tempstatkills%, %sgreborn_player_tempstatchests%, %sgreborn_player_tempstatheadshots%
  • %sgreborn_player_setting_<settings_enum_lowercase>%
  • Current settings enum values: scoreboard, join_quit_messages, spectator_nightvision, spectator_showspectators, spectator_speed, boss_bar

Quests / Challenge / Scenario
  • %sgreborn_quest_primary_name%, %sgreborn_quest_primary_progress%, %sgreborn_quest_primary_goal%, %sgreborn_quest_primary_percent%, %sgreborn_quest_primary_state%
  • %sgreborn_quests_daily_remaining%, %sgreborn_quests_weekly_remaining%
  • %sgreborn_quests_daily_completed%, %sgreborn_quests_weekly_completed%, %sgreborn_quests_daily_total%, %sgreborn_quests_weekly_total%, %sgreborn_quests_active_total%, %sgreborn_quests_completed_total%
  • %sgreborn_quests_progress_<id>%, %sgreborn_quests_goal_<id>%
  • %sgreborn_challenge%, %sgreborn_challenges%, %sgreborn_challenge_name%, %sgreborn_challenges_name%
  • %sgreborn_challenge_progress%, %sgreborn_challenges_progress%, %sgreborn_challenge_goal%, %sgreborn_challenges_goal%, %sgreborn_challenge_percent%, %sgreborn_challenge_remaining%, %sgreborn_challenge_time_left%, %sgreborn_challenges_time_left%, %sgreborn_challenge_active%
  • %sgreborn_scenario%, %sgreborn_scenarios%, %sgreborn_scenarios_active_list%, %sgreborn_scenario_count%, %sgreborn_scenarios_active_count%

Event Systems / Runtime
  • %sgreborn_dm_radius%
  • %sgreborn_airdrop_active%, %sgreborn_airdrop_count%, %sgreborn_airdrop_location%, %sgreborn_airdrop_progress%, %sgreborn_airdrop_progress_percent%, %sgreborn_airdrop_clicks_needed%, %sgreborn_airdrop_status%, %sgreborn_airdrop_fallen%
  • %sgreborn_boss_active%, %sgreborn_boss_name%, %sgreborn_boss_health%, %sgreborn_boss_max_health%, %sgreborn_boss_health_percent%, %sgreborn_boss_location%, %sgreborn_boss_rage%
  • %sgreborn_gulag_enabled%, %sgreborn_gulag_in_gulag%, %sgreborn_gulag_waiting%, %sgreborn_gulag_wait_count%, %sgreborn_gulag_enter_countdown%, %sgreborn_gulag_duel_active%, %sgreborn_gulag_opponent%, %sgreborn_gulag_duel_countdown%, %sgreborn_gulag_lives_left%
  • %sgreborn_cooldown_active%, %sgreborn_cooldown_label%, %sgreborn_cooldown_remaining_ms%, %sgreborn_cooldown_remaining_s%, %sgreborn_cooldown_progress%, %sgreborn_cooldown_bar%

Leaderboards
  • %sgreborn_leaderboard_<stat>_<rank>%
  • This currently returns "playerName: value", not just the name.​
  • Rank: 1..10 only (enforced in code)​
  • Stat key: must match a valid Stats enum key such as kills, deaths, sg_wins, points, experience, mmr, damage_given, damage_taken, playtime, etc.​

Boosters
  • %sgreborn_boosters_total_active%, %sgreborn_boosters_points_total_boost%, %sgreborn_boosters_exp_total_boost%, %sgreborn_boosters_players_list%, %sgreborn_boosters_active_summary%
  • %sgreborn_boosters_expire_time_<index>% — remaining time for active global booster slot​
  • %sgreborn_player_credit_booster_amount%, %sgreborn_player_credit_booster_time%, %sgreborn_player_exp_booster_amount%, %sgreborn_player_exp_booster_time%


BUILT-IN PLACEHOLDERS (no PAPI needed)
  • Built-in placeholders use the same identifiers without the sgreborn_ prefix. Example: %sgreborn_game_state% in PAPI corresponds to built-in %game_state%.
  • The current built-in sources are BuiltInPlaceholders and ScoreboardDataUtil, so the runtime, team, quest, boss, gulag, scenario, booster and player placeholders above are also usable directly in plugin-owned renderers such as messages, scoreboards, menus, titles, actionbars, bossbars, and similar internal UI.

Common built-in families
  • Match / map: %game_state%, %game_matchid%, %game_duration_formatted%, %game_map%, %map_name%, %map_author%, %map_link%, %world_name%
  • Counts: %alive%, %spectators%, %total_players%, %required_players%, %needed_players%, %alive_teams%, %max_players%
  • Player / team: %player_name%, %player_displayname%, %wins%, %kills%, %assists%, %deaths%, %mmr%, %experience%, %level_display%, %team_name%, %team_color%, %team_alive%, %team_members_alive_list%
  • Systems: %airdrop_*%, %boss_*%, %gulag_*%, %challenge_*%, %quest_primary_*%, %quests_*%, %cooldown_*%, %chunkloading_*%, %scenario%, %scenarios_active_count%, %boosters_total_active%
  • Utility: %date%, %time%, %datetime%, %server_ip%, %mode_label%, %mode_short%, %winner_name%, %view_mode%

Special internal expander
  • %maps% — used in the built-in vote messages to expand map vote lines via messages.maps-line

Configuration files:
Resource Information
Author:
----------
Total Downloads: 41
First Release: Sep 28, 2022
Last Update: Yesterday at 5:55 PM
Category: ---------------
All-Time Rating:
10 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings