1.0.0-SNAPSHOT-U167

+ Started the implementation of the AutoSpawn system
+ Updated the TODO
+ Split the remaining TODO items in to what can be done post and pre release
This commit is contained in:
Charles 2019-01-02 22:08:47 +08:00
parent e4fceb2fb7
commit f41aa38ef7
7 changed files with 109 additions and 14 deletions

23
TODO
View File

@ -1,15 +1,20 @@
02:00 -> Add full AutoSpawns system
02:00 -> Interval based spawn system, so bosses will spawn at location after certain time
02:00 -> Randomly in the wilderness, bosses will spawn with x chance within coords as a player is loading chunks
00:45 -> Randomly from a spawner, bosses will spawn with x chance within coords when a spawner is spawning mobs of the same type
02:00 -> Interval based spawn system, so bosses will spawn at location after certain time
04:00 -> Add the AutoSpawns Editing GUI (with a button for toggling the type of the autospawn, from wilderness, to spawner, to interval and a button for editing data)
01:00 -> Interval - Button to change coords, list of possible spawns, spawnIfChunkIsntLoaded, maxActiveBosses, bossesPerInterval, spawnRate, spawnType (Interval or Random), placeholder, message
01:00 -> Wilderness - Button to change max coords, boss that autospawn applies to, maxActiveBosses, spawnChance
01:00 -> Spawner - Button to change max coords, boss that autospawn applies to, maxActiveBosses, spawnChance
01:00 -> Interval - Button to change coords, list of possible spawns, spawnIfChunkIsntLoaded, maxActiveBosses, bossesPerInterval, spawnRate, spawnType (Interval or Random), placeholder, message
00:30 -> Connect the /boss time [section] to the AutoSpawns timer (can only be applied to Interval AutoSpawns)
01:00 -> Add a new branch for the plugin and add support for Legacy version
-----------
8:30 hrs
------------------------------------- TO DO AFTER RELEASE ---------------------------------------------------
02:00 -> Randomly in the wilderness, bosses will spawn with x chance within coords as a player is loading chunks
00:45 -> Randomly from a spawner, bosses will spawn with x chance within coords when a spawner is spawning mobs of the same type
-> AutoSpawns Editing GUI
01:00 -> Wilderness - Button to change max coords, boss that autospawn applies to, maxActiveBosses, spawnChance
01:00 -> Spawner - Button to change max coords, boss that autospawn applies to, maxActiveBosses, spawnChance
-----------
15:15 hrs
4:45 hrs

View File

@ -1,14 +1,21 @@
{
"Section1": {
"location": "world,0,150,0",
"MiddleOfTheEarth": {
"editing": true,
"type": "INTERVAL",
"entities": [
"SkeletonKing"
],
"settings": {
"spawnWhenChunkIsntLoaded": false,
"maxAliveAtOnce": 1,
"amountPerSpawn": 1,
"placeholder": "{custombosses_1}"
"spawnWhenChunkIsntLoaded": false,
"overrideDefaultSpawnMessage": true,
"spawnMessage": "MiddleOfTheEarthSpawnMessage"
},
"customData": {
"location": "world,0,150,0",
"spawnRate": "30",
"placeholder": "{customBosses_1}"
}
}
}

View File

@ -1,4 +1,7 @@
{
"MiddleOfTheEarthSpawnMessage": [
"&6&lEpicBosses &8» &fA mysterious boss has just been spawned at the middle of the earth in the world &e{world} at the coordinates &e{x}, {y}, {z}&f!"
],
"SKMainSkillMessage": [
"&6&l{boss} &7has used the &e{skill} &7skill."
],

View File

@ -0,0 +1,30 @@
package com.songoda.epicbosses.autospawns;
import com.google.gson.JsonObject;
import com.google.gson.annotations.Expose;
import com.songoda.epicbosses.autospawns.settings.AutoSpawnSettings;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
/**
* @author Charles Cullen
* @version 1.0.0
* @since 02-Jan-19
*/
public class AutoSpawn {
@Expose @Getter @Setter private Boolean editing;
@Expose @Getter @Setter private String type;
@Expose @Getter @Setter private List<String> entities;
@Expose @Getter @Setter private AutoSpawnSettings settings;
@Expose @Getter @Setter private JsonObject customData;
public AutoSpawn(boolean editing, List<String> entities, AutoSpawnSettings autoSpawnSettings) {
this.editing = editing;
this.entities = entities;
this.settings = autoSpawnSettings;
}
}

View File

@ -0,0 +1,26 @@
package com.songoda.epicbosses.autospawns;
/**
* @author Charles Cullen
* @version 1.0.0
* @since 02-Jan-19
*/
public enum SpawnTypes {
BLANK(0),
INTERVAL(1);
private int rank;
SpawnTypes(int rank) {
this.rank = rank;
}
//
// public SkillMode getNext() {
// return get(this.rank+1);
// }
//
// public static SpawnTypes getCurrent(String input) {
//
// }
}

View File

@ -0,0 +1,24 @@
package com.songoda.epicbosses.autospawns.settings;
import com.google.gson.annotations.Expose;
import lombok.Getter;
import lombok.Setter;
/**
* @author Charles Cullen
* @version 1.0.0
* @since 02-Jan-19
*/
public class AutoSpawnSettings {
@Expose @Getter @Setter private Integer maxAliveAtOnce, amountPerSpawn;
@Expose @Getter @Setter private Boolean spawnWhenCheckIsntLoaded, overrideDefaultSpawnMessage;
@Expose @Getter @Setter private String spawnMessage;
public AutoSpawnSettings(int maxAliveAtOnce, int amountPerSpawn, boolean spawnWhenCheckIsntLoaded) {
this.maxAliveAtOnce = maxAliveAtOnce;
this.amountPerSpawn = amountPerSpawn;
this.spawnWhenCheckIsntLoaded = spawnWhenCheckIsntLoaded;
}
}

View File

@ -20,7 +20,7 @@
<properties>
<!--<plugin.version>maven-version-number-SNAPSHOT-U90</plugin.version>-->
<plugin.version>1.0.0-U166</plugin.version>
<plugin.version>1.0.0-U167</plugin.version>
<plugin.name>EpicBosses</plugin.name>
<plugin.main>com.songoda.epicbosses.CustomBosses</plugin.main>
<plugin.author>AMinecraftDev</plugin.author>