AcidIsland addon for BSB.

This commit is contained in:
tastybento 2018-05-25 12:20:26 -07:00
parent 6ef7b448d1
commit 6ac6fe44c0
5 changed files with 206 additions and 106 deletions

View File

@ -0,0 +1,176 @@
package bskyblock.addon.acidisland;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.bukkit.entity.EntityType;
import org.bukkit.inventory.ItemStack;
import org.bukkit.potion.PotionEffectType;
import us.tastybento.bskyblock.api.configuration.WorldSettings;
/**
* A lot of placeholders right now in here...
* @author tastybento
*
*/
public class AISettings implements WorldSettings {
public int getAcidDamage() {
return 1;
}
public List<PotionEffectType> getAcidDamageType() {
List<PotionEffectType> result = new ArrayList<>();
result.add(PotionEffectType.CONFUSION);
return result;
}
public List<ItemStack> getChestItems() {
// TODO Auto-generated method stub
List<ItemStack> result = new ArrayList<>();
return result;
}
public boolean getDamageOps() {
return true;
}
@Override
public Map<EntityType, Integer> getEntityLimits() {
// TODO Auto-generated method stub
return null;
}
public boolean getFullArmorProtection() {
// TODO Auto-generated method stub
return false;
}
public boolean getHelmetProtection() {
// TODO Auto-generated method stub
return false;
}
@Override
public int getIslandDistance() {
// TODO Auto-generated method stub
return 60;
}
@Override
public int getIslandHeight() {
// TODO Auto-generated method stub
return 50;
}
@Override
public int getIslandProtectionRange() {
// TODO Auto-generated method stub
return 50;
}
@Override
public int getIslandStartX() {
// TODO Auto-generated method stub
return 0;
}
@Override
public int getIslandStartZ() {
// TODO Auto-generated method stub
return 0;
}
@Override
public int getIslandXOffset() {
// TODO Auto-generated method stub
return 0;
}
@Override
public int getIslandZOffset() {
// TODO Auto-generated method stub
return 0;
}
@Override
public int getMaxIslands() {
// TODO Auto-generated method stub
return 0;
}
@Override
public int getNetherSpawnRadius() {
// TODO Auto-generated method stub
return 0;
}
public int getRainDamage() {
return 1;
}
public int getSeaHeight() {
return 55;
}
@Override
public Map<String, Integer> getTileEntityLimits() {
// TODO Auto-generated method stub
return null;
}
@Override
public String getWorldName() {
return "AcidIsland-world";
}
@Override
public boolean isEndGenerate() {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean isEndIslands() {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean isNetherGenerate() {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean isNetherIslands() {
// TODO Auto-generated method stub
return false;
}
public boolean isNetherRoof() {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean isNetherTrees() {
// TODO Auto-generated method stub
return false;
}
@Override
public String getFriendlyName() {
return "AcidIsland";
}
@Override
public boolean isDragonSpawn() {
// TODO Auto-generated method stub
return false;
}
}

View File

@ -14,13 +14,13 @@ import us.tastybento.bskyblock.api.addons.Addon;
*/
public class AcidIsland extends Addon {
private Settings settings;
private AISettings settings;
private AcidIslandWorld aiw;
@Override
public void onLoad() {
// Load settings
settings = new Settings();
settings = new AISettings();
// Create worlds
aiw = new AcidIslandWorld(this);
// TODO Register settings
@ -43,7 +43,7 @@ public class AcidIsland extends Addon {
public void onDisable(){
}
public Settings getSettings() {
public AISettings getSettings() {
return settings;
}

View File

@ -35,7 +35,7 @@ public class AcidIslandWorld {
// Create the world if it does not exist
islandWorld = WorldCreator.name(worldName).type(WorldType.FLAT).environment(World.Environment.NORMAL).generator(new ChunkGeneratorWorld(addon))
.createWorld();
addon.getBSkyBlock().registerWorld("acidisland", islandWorld);
addon.getBSkyBlock().registerWorld(islandWorld, addon.getSettings());
// Make the nether if it does not exist
if (addon.getSettings().isNetherGenerate()) {
if (addon.getServer().getWorld(worldName + NETHER) == null) {
@ -47,7 +47,6 @@ public class AcidIslandWorld {
netherWorld = WorldCreator.name(worldName + NETHER).type(WorldType.FLAT).generator(new ChunkGeneratorWorld(addon))
.environment(World.Environment.NETHER).createWorld();
}
addon.getBSkyBlock().registerWorld("acid_nether", netherWorld);
}
// Make the end if it does not exist
if (addon.getSettings().isEndGenerate()) {
@ -60,7 +59,6 @@ public class AcidIslandWorld {
endWorld = WorldCreator.name(worldName + THE_END).type(WorldType.FLAT).generator(new ChunkGeneratorWorld(addon))
.environment(World.Environment.THE_END).createWorld();
}
addon.getBSkyBlock().registerWorld("acid_end", endWorld);
}
}

View File

@ -1,82 +0,0 @@
package bskyblock.addon.acidisland;
import java.util.ArrayList;
import java.util.List;
import org.bukkit.inventory.ItemStack;
import org.bukkit.potion.PotionEffectType;
/**
* A lot of placeholders right now in here...
* @author tastybento
*
*/
public class Settings {
public boolean isNetherGenerate() {
// TODO Auto-generated method stub
return false;
}
public boolean isNetherIslands() {
// TODO Auto-generated method stub
return false;
}
public boolean isEndGenerate() {
// TODO Auto-generated method stub
return false;
}
public boolean isEndIslands() {
// TODO Auto-generated method stub
return false;
}
public int getSeaHeight() {
return 125;
}
public boolean isNetherRoof() {
// TODO Auto-generated method stub
return false;
}
public String getWorldName() {
return "AcidIsland";
}
public int getRainDamage() {
return 1;
}
public int getAcidDamage() {
return 1;
}
public boolean getDamageOps() {
return true;
}
public List<PotionEffectType> getAcidDamageType() {
List<PotionEffectType> result = new ArrayList<>();
result.add(PotionEffectType.CONFUSION);
return result;
}
public boolean getHelmetProtection() {
// TODO Auto-generated method stub
return false;
}
public boolean getFullArmorProtection() {
// TODO Auto-generated method stub
return false;
}
public List<ItemStack> getChestItems() {
// TODO Auto-generated method stub
List<ItemStack> result = new ArrayList<>();
return result;
}
}

View File

@ -2,6 +2,7 @@ package bskyblock.addon.acidisland.listeners;
import java.util.UUID;
import org.bukkit.GameMode;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.TreeType;
@ -35,30 +36,37 @@ public class IslandBuilder implements Listener {
}
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void onIslandCreate(final IslandCreateEvent event) {
if (addon.isEnabled()) {
public void onIslandCreate(IslandCreateEvent event) {
// Only create islands in the AcidIsland worlds
if (addon.isEnabled() && addon.getAiw().inWorld(event.getLocation())) {
event.setCancelled(true);
generateAcidIslandBlocks(event.getIsland(), addon.getAiw().getOverWorld());
if (addon.getSettings().isNetherGenerate() && addon.getSettings().isNetherIslands()) {
generateAcidIslandBlocks(event.getIsland(), addon.getAiw().getNetherWorld());
}
if (addon.getSettings().isEndGenerate() && addon.getSettings().isEndIslands()) {
generateAcidIslandBlocks(event.getIsland(), addon.getAiw().getEndWorld());
}
createIsland(User.getInstance(event.getPlayerUUID()), event.getIsland());
}
}
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void onIslandReset(final IslandResetEvent event) {
if (addon.isEnabled()) {
public void onIslandReset(IslandResetEvent event) {
// Only create islands in the AcidIsland worlds
if (addon.isEnabled() && addon.getAiw().inWorld(event.getLocation())) {
event.setCancelled(true);
generateAcidIslandBlocks(event.getIsland(), addon.getAiw().getOverWorld());
if (addon.getSettings().isNetherGenerate() && addon.getSettings().isNetherIslands()) {
generateAcidIslandBlocks(event.getIsland(), addon.getAiw().getNetherWorld());
}
if (addon.getSettings().isEndGenerate() && addon.getSettings().isEndIslands()) {
generateAcidIslandBlocks(event.getIsland(), addon.getAiw().getEndWorld());
}
createIsland(User.getInstance(event.getPlayerUUID()), event.getIsland());
}
}
private void createIsland(User user, Island island) {
if (user != null) {
user.setGameMode(GameMode.SPECTATOR);
}
generateAcidIslandBlocks(island, addon.getAiw().getOverWorld());
if (addon.getSettings().isNetherGenerate() && addon.getSettings().isNetherIslands()) {
generateAcidIslandBlocks(island, addon.getAiw().getNetherWorld());
}
if (addon.getSettings().isEndGenerate() && addon.getSettings().isEndIslands()) {
generateAcidIslandBlocks(island, addon.getAiw().getEndWorld());
}
// Teleport player to their island
if (user != null) {
addon.getIslands().homeTeleport(island.getWorld(), user.getPlayer());
}
}