BattlePlugins / BattleArena

A complete match and event framework for creating arenas and minigames in Minecraft. Supports creating modes through config files, or fully custom modes through plugins.
https://docs.battleplugins.org/shelves/battlearena
GNU General Public License v3.0
20 stars 22 forks source link

Need some help to implement ArcadeMode on BattleArena #90

Open Hideman85 opened 7 years ago

Hideman85 commented 7 years ago

Hello,

First I love this plugin it's fully MiniGame API for Minecraft easy to use and many useful features. So I want to implement Arcade Mode what is it ? It's just an «Competition» witch chose randomly a new ArenaType for next Match ( like join sign chose nex arena for ArenaType and place player to queue ) And I want just when Match is finished ArcadeMode add all off Players ( winners, looser and spectate ) to new Match chose again randomly.

I think I can implement this but I don't know where I can start .... Arcade extends Event ? Match ? Competition ? and why ? How link to new ArenaCommandSign ? Or it's same thing as TournamentEvent ?

I am a little lost .... So if you can help me I would be grateful ;)

Europia79 commented 7 years ago

Another name for this is Medley: playing different game modes.

First, you have to realize that every server is different. Each server has different mini-games installed. So, the first thing you'll have to do is determine what mini-games are available.

In order to do that, I would trace thru BatteArena.registerCompetition() and see where it saves its information.

https://github.com/BattlePlugins/BattleArena/blob/master/src/java/mc/alk/arena/BattleArena.java#L697 https://github.com/BattlePlugins/BattleArena/blob/master/src/java/mc/alk/arena/BattleArena.java#L710 https://github.com/BattlePlugins/BattleArena/blob/master/src/java/mc/alk/arena/BattleArena.java#L723 https://github.com/BattlePlugins/BattleArena/blob/master/src/java/mc/alk/arena/BattleArena.java#L737

There are four of them (they're overloaded). But it looks like they all create a new APIRegistrationController object and foward the information to its registerCompetition method.

https://github.com/BattlePlugins/BattleArena/blob/master/src/java/mc/alk/arena/controllers/APIRegistrationController.java#L43 https://github.com/BattlePlugins/BattleArena/blob/master/src/java/mc/alk/arena/controllers/APIRegistrationController.java#L122 https://github.com/BattlePlugins/BattleArena/blob/master/src/java/mc/alk/arena/controllers/APIRegistrationController.java#L126 https://github.com/BattlePlugins/BattleArena/blob/master/src/java/mc/alk/arena/controllers/APIRegistrationController.java#L136 https://github.com/BattlePlugins/BattleArena/blob/master/src/java/mc/alk/arena/controllers/APIRegistrationController.java#L143 https://github.com/BattlePlugins/BattleArena/blob/master/src/java/mc/alk/arena/controllers/APIRegistrationController.java#L157

Just skimming thru it real quick, it looks like that some of the information is saved inside CompetitionController. It may or may not contain enough information for your needs.