Updated to new API and saved config.yml

Updated config.yml to fit actual values.
This commit is contained in:
tastybento 2018-07-11 21:55:36 -07:00
parent 41b87e67ee
commit 9a12b46e43
3 changed files with 246 additions and 222 deletions

View File

@ -1,26 +1,35 @@
############################################################################
# Config for AcidIsland V${version}
#
# Created and maintained by Tastybento with the help of Poslovitch
############################################################################
### World Settings ###
uniqueId: config
acid:
damage-op: true
damage-chickens: false
damage:
acid:
player: 10
monster: 5
animal: 5
item: 0
rain: 1
effects:
- CONFUSION
- BLINDNESS
protection:
helmet: false
full-armor: false
world:
# Friendly name for this world. Used in admin commands. Must be a single word
friendly-name: AcidIsland
# Name of the world - if it does not exist then it will be generated.
# It acts like a prefix for nether and end (e.g. BSkyBlock, BSkyBlock_nether, BSkyBlock_end)
world-name: AcidIsland_world
# Radius of island in blocks. (So distance between islands is twice this)
# Radius of island in blocks. (So distance between islands is twice this)
# Will be rounded up to the nearest 16 blocks.
# It is the same for every dimension : Overworld, Nether and End.
# This value cannot be changed mid-game and the plugin will not start if it is different.
distance-between-islands: 64
# Default protection range radius in blocks. Cannot be larger than distance.
# Admins can change protection sizes for players individually using /bsadmin setrange
# or set this permission: bskyblock.island.range.<number>
protection-range: 50
# Start islands at these coordinates. This is where new islands will start in the
# world. These must be a factor of your island distance, but the plugin will auto
# calculate the closest location on the grid. Islands develop around this location
@ -28,22 +37,25 @@ world:
# If none of this makes sense, leave it at 0,0.
start-x: 0
start-z: 0
offset-x: 0
offset-z: 0
# Island height - Lowest is 5.
# It is the y coordinate of the bedrock block in the schematic
# It is the y coordinate of the bedrock block in the schem
island-height: 50
# Use your own world generator for this world. In this case, the plugin will not generate
# anything.
use-own-generator: false
# Sea height (don't changes this mid-game unless you delete the world)
# Minimum is 0, which means you are playing Skyblock!
# If sea height is less than about 10, then players will drop right through it
# if it exists. Makes for an interesting variation on skyblock.
sea-height: 55
# Maximum number of islands in the world. Set to 0 for unlimited.
# If the number of islands is greater than this number, no new island will be created.
max-islands: 0
### Nether-related Settings ###
# The default game mode for this world. Players will be set to this mode when they create
# a new island for example. Options are SURVIVAL, CREATIVE, ADVENTURE, SPECTATOR
default-game-mode: SURVIVAL
nether:
# Generate Nether - if this is false, the nether world will not be made and access to
# the nether will not occur. Other plugins may still enable portal usage.
@ -51,39 +63,195 @@ world:
# Note that with a standard nether all players arrive at the same portal and entering a
# portal will return them back to their islands.
generate: true
# Islands in Nether. Change to false for standard vanilla nether.
islands: true
# Nether trees are made if a player grows a tree in the nether (gravel and glowstone)
# Applies to both vanilla and islands Nether
trees: true
# Make the nether roof, if false, there is nothing up there
# Change to false if lag is a problem from the generation
# Only applies to islands Nether
roof: true
# Nether spawn protection radius - this is the distance around the nether spawn
# that will be protected from player interaction (breaking blocks, pouring lava etc.)
# Minimum is 0 (not recommended), maximum is 100. Default is 25.
# Only applies to vanilla nether
spawn-radius: 25
end:
generate: true
islands: true
### Protection Settings ###
dragon-spawn: false
# Removing mobs - this kills all monsters in the vicinity. Benefit is that it helps
# players return to their island if the island has been overrun by monsters.
# This setting is toggled in world flags and set by the settings GUI.
# Mob white list - these mobs will NOT be removed when logging in or doing /island
remove-mobs-whitelist:
- ZOMBIE_VILLAGER
- PIG_ZOMBIE
- WITHER
- ENDERMAN
# World flags. These are boolean settings for various flags for this world
flags:
ENTER_EXIT_MESSAGES: true
PISTON_PUSH: true
ISLAND_RESPAWN: true
OFFLINE_REDSTONE: true
REMOVE_MOBS: true
ENDER_CHEST: false
# These are the default protection settings for new islands.
# The value is the minimum island rank required allowed to do the action
# Ranks are: Visitor = 0, Member = 900, Owner = 1000
default-island-flags:
HURT_ANIMALS: 900
COLLECT_WATER: 900
REDSTONE: 900
BUTTON: 900
BUCKET: 900
FIRE_EXTINGUISH: 900
LOCK: 0
ENDER_PEARL: 900
BEACON: 900
DOOR: 900
TRAPDOOR: 900
FURNACE: 900
PRESSURE_PLATE: 900
PLACE_BLOCKS: 900
ANVIL: 900
FIRE: 900
CRAFTING: 900
BREEDING: 900
HURT_VILLAGERS: 900
SHEARING: 900
ENCHANTING: 900
BED: 900
SPAWN_EGGS: 900
COLLECT_LAVA: 900
MILKING: 900
LEVER: 900
RIDING: 900
HURT_MONSTERS: 900
ARMOR_STAND: 900
GATE: 900
TRADING: 900
EGGS: 900
ITEM_DROP: 900
PORTAL: 900
CHEST: 900
NOTE_BLOCK: 900
LEASH: 900
MOUNT_INVENTORY: 900
BREAK_BLOCKS: 900
CHORUS_FRUIT: 900
CROP_TRAMPLE: 900
ITEM_PICKUP: 900
JUKEBOX: 900
BREWING: 900
# These are the default settings for new islands
default-island-settings:
PVP_END: false
ANIMAL_SPAWN: true
PVP_NETHER: false
MONSTER_SPAWN: true
FIRE_SPREAD: true
PVP_OVERWORLD: false
# These are the settings visible to users.
visible-settings: []
# Visitor banned commands - Visitors to islands cannot use these commands in this world
visitor-banned-commands:
- spawner
- spawnmob
island:
limits:
entities: {}
tile-entities: {}
# Default max team size
# Use this permission to set for specific user groups: askyblock.team.maxsize.<number>
# Permission size cannot be less than the default below.
max-team-size: 4
# Default maximum number of homes a player can have. Min = 1
# Accessed via sethome <number> or go <number>
# Use this permission to set for specific user groups: askyblock.island.maxhomes.<number>
max-homes: 1
name:
# Island naming
# Only players with the TODO can name their island
# It is displayed in the top ten and enter and exit announcements
# It replaces the owner's name. Players can use & for color coding if they have the TODO permission
# These set the minimum and maximum size of a name.
min-length: 4
max-length: 20
# How long a player must wait until they can rejoin a team island after being
# kicked in minutes. This slows the effectiveness of players repeating challenges
# by repetitively being invited to a team island.
invite-wait: 60
reset:
# How many resets a player is allowed (override with /asadmin clearreset <player>)
# Value of -1 means unlimited, 0 means hardcore - no resets.
# Example, 2 resets means they get 2 resets or 3 islands lifetime
reset-limit: -1
# Kicked or leaving players lose resets
# Players who leave a team will lose an island reset chance
# If a player has zero resets left and leaves a team, they cannot make a new
# island by themselves and can only join a team.
# Leave this true to avoid players exploiting free islands
leavers-lose-reset: false
# Allow kicked players to keep their inventory.
# If false, kicked player's inventory will be thrown at the island leader if the
# kicked player is online and in the island world.
kicked-keep-inventory: false
on-join:
# What the plugin should reset when the player joins or creates an island
# Reset Money - if this is true, will reset the player's money to the starting money
# Recommendation is that this is set to true, but if you run multi-worlds
# make sure your economy handles multi-worlds too.
money: false
# Reset inventory - if true, the player's inventory will be cleared.
# Note: if you have MultiInv running or a similar inventory control plugin, that
# plugin may still reset the inventory when the world changes.
inventory: false
# Reset Ender Chest - if true, the player's Ender Chest will be cleared.
ender-chest: false
on-leave:
# What the plugin should reset when the player leaves or is kicked from an island
# Reset Money - if this is true, will reset the player's money to the starting money
# Recommendation is that this is set to true, but if you run multi-worlds
# make sure your economy handles multi-worlds too.
money: false
# Reset inventory - if true, the player's inventory will be cleared.
# Note: if you have MultiInv running or a similar inventory control plugin, that
# plugin may still reset the inventory when the world changes.
inventory: false
# Reset Ender Chest - if true, the player's Ender Chest will be cleared.
ender-chest: false
require-confirmation:
reset: true
# Ask the player to confirm the command he is using by typing it again.
# The 'wait' value is the number of seconds to wait for confirmation.
kick: true
kick-wait: 10
leave: true
leave-wait: 10
# How long a player must wait before they can reset their island again in second
reset-wait: 300
make-island-if-none: false
# Immediately teleport player to their island (home 1 if it exists) when entering the world
immediate-teleport-on-island: false
# Have player's respawn on their island if they die
respawn-on-island: false
deaths:
# Maximum number of deaths to count. The death count can be used by add-ons.
max: 10
sum-team: false
# When a player joins a team, reset their death count
team-join-reset: true
customranks: {}
protection:
# Allow pistons to push outside of the protected area (maybe to make bridges)
allow-piston-push: true
# Restrict Wither and other flying mobs.
# Any flying mobs that exit the island space where they were spawned will be removed.
# Includes blaze and ghast.
restrict-flying-mobs: true
# Invincible visitors. List of damages that will not affect visitors.
# Make list blank if visitors should receive all damages
invincible-visitors:
@ -111,196 +279,13 @@ protection:
- HOT_FLOOR
- CRAMMING
- VOID
# Visitor banned commands: Visitors to islands cannot use these commands
visitor-banned-commands:
- spawner
- spawnmob
# PVP cooldown in seconds. Players cannot toggle PVP off and on until this timeout
toggle-pvp-cooldown: 60
# TODO
flags: []
### Island Settings ###
island:
# Default chest items
chest-items:
- ==: org.bukkit.inventory.ItemStack
type: LAVA_BUCKET
- ==: org.bukkit.inventory.ItemStack
type: ICE
amount: 2
- ==: org.bukkit.inventory.ItemStack
type: MELON_SEEDS
- ==: org.bukkit.inventory.ItemStack
type: BONE
amount: 2
- ==: org.bukkit.inventory.ItemStack
type: COBBLESTONE
amount: 5
- ==: org.bukkit.inventory.ItemStack
type: SAPLING
amount: 2
# Default max team size
# Use this permission to set for specific user groups: askyblock.team.maxsize.<number>
# Permission size cannot be less than the default below.
max-team-size: 4
# Default maximum number of homes a player can have. Min = 1
# Accessed via sethome <number> or go <number>
# Use this permission to set for specific user groups: askyblock.island.maxhomes.<number>
max-homes: 1
# How long a player must wait until they can rejoin a team island after being
# kicked in minutes. This slows the effectiveness of players repeating challenges
# by repetitively being invited to a team island.
invite-wait: 60
### Join/leave/reset island related settings ###
reset:
# How many resets a player is allowed (override with /asadmin clearreset <player>)
# Value of -1 means unlimited, 0 means hardcore - no resets.
# Example, 2 resets means they get 2 resets or 3 islands lifetime
reset-limit: -1
#How long a player must wait before they can reset their island again in second
reset-wait: 300
# Kicked or leaving players lose resets
# Players who leave a team will lose an island reset chance
# If a player has zero resets left and leaves a team, they cannot make a new
# island by themselves and can only join a team.
# Leave this true to avoid players exploiting free islands
leavers-lose-resets: true
# Allow kicked players to keep their inventory.
# If false, kicked player's inventory will be thrown at the island leader if the
# kicked player is online and in the island world.
kicked-keep-inventory: false
# What the plugin should reset when the player joins or creates an island
on-join:
# Reset Money - if this is true, will reset the player's money to the starting money
# Recommendation is that this is set to true, but if you run multi-worlds
# make sure your economy handles multi-worlds too.
money: false
# Reset inventory - if true, the player's inventory will be cleared.
# Note: if you have MultiInv running or a similar inventory control plugin, that
# plugin may still reset the inventory when the world changes.
inventory: false
# Reset Ender Chest - if true, the player's Ender Chest will be cleared.
ender-chest: false
# What the plugin should reset when the player leaves or is kicked from an island
on-leave:
# Reset Money - if this is true, will reset the player's money to the starting money
# Recommendation is that this is set to true, but if you run multi-worlds
# make sure your economy handles multi-worlds too.
money: false
# Reset inventory - if true, the player's inventory will be cleared.
# Note: if you have MultiInv running or a similar inventory control plugin, that
# plugin may still reset the inventory when the world changes.
inventory: false
# Reset Ender Chest - if true, the player's Ender Chest will be cleared.
ender-chest: false
# Removing mobs - this kills all monsters in the vicinity. Benefit is that it helps
# players return to their island if the island has been overrun by monsters.
# Con is that it kills any mob grinders.
remove-mobs:
# Remove mobs on island when logging in.
on-login: false
# Remove mobs when /island.
on-island: false
# Mob white list - these mobs will NOT be removed when logging in or doing /island
whitelist:
- WITHER
- ENDERMAN
- PIG_ZOMBIE
#- ZOMBIE_VILLAGER (1.10+)
# Make island if player teleports to the island world and does not have one
make-island-if-none: false
# Immediately teleport player to their island (home 1 if it exists) when entering the world
immediate-teleport-on-island: false
# Have player's respawn on their island if they die
respawn-on-island: false
# Only allow the island leader to coop players.
# Island members wont be able to coop other players.
only-leader-can-coop: false
# Deaths count
deaths:
# Max deaths
# If player dies more than this, it doesn't count anymore
max: 10
# Sum team deaths - if true, all the teams deaths are summed
# If false, only the leader's deaths counts
sum-team: false
### Acid Settings ###
acid:
# Ops receive damage from acid (Set to true if you want Ops to play properly)
damage-op: true
# Damage chickens in acid - true or false - chickens tend to go swimming...
damage-chickens: false
damage:
# Water is acid
acid:
# Acid damage to player per second by being in acid if they have no armor on.
# A fully health player has 20 health points. Players will regen some health
# so the default will give players about 3 seconds to get out the acid
# 0 = no damage, 10 = default damage, 20 = instant death
player: 10
# Damage that monsters will experience in acid.
monster: 5
# Damage that animals will experience in acid.
animal: 5
# Destroy items in water after this many seconds. Timing is variable and may occur
# up to 2x this time. If 0, items will not be removed. Acid damage does not need to
# be on for this setting to work. i.e., it'll work with water too.
# Items fizz when they are destroyed.
item: 0
# Damage that rain does.
rain: 1
# Damage type to apply in addition to acid damage
# Types can be : SLOW, SLOW_DIGGING, CONFUSION, BLINDNESS, HUNGER, WEAKNESS and POISON
# If you just want these to act, then make the acid damage 0 above
# Note - these are potion effects and so can be cured by milk
effects:
- CONFUSION
- BLINDNESS
# Armor protection
protection:
# Protect players from acid rain if they have a helmet on
helmet: false
# Protect players from all acid if they have a full set of armor on
full-armor: false
# Config.yml version. DO NOT EDIT. This number only changes if the latest
# plugin config has been updated. If a new config is detected, it will be
# auto-saved to config.new.yml.
version: ${version}
togglePvPCooldown: 0
allowEndermanGriefing: false
endermanDeathDrop: false
allowTNTDamage: false
allowChestDamage: false
allowCreeperDamage: false
allowCreeperGriefing: false
allowMobDamageToItemFrames: false
panel:
close-on-click-outside: true

View File

@ -33,41 +33,59 @@ import us.tastybento.bskyblock.database.objects.adapters.PotionEffectListAdapter
@StoreAt(filename="config.yml", path="addons/BSkyBlock-AcidIsland") // Explicitly call out what name this should have.
public class AISettings implements DataObject, WorldSettings {
@ConfigComment("AcidIsland Configuration")
@ConfigComment("This config file is dynamic and saved when the server is shutdown.")
@ConfigComment("You cannot edit it while the server is running because changes will")
@ConfigComment("be lost! Use in-game settings GUI or edit when server is offline.")
@ConfigComment("Do not change this value below")
private String uniqueId = "config";
// ---------------------------------------------
/* ACID */
@ConfigComment("Acid Settings")
@ConfigComment("")
@ConfigComment("Acid can damage ops or not")
@ConfigEntry(path = "acid.damage-op")
private boolean acidDamageOp = false;
@ConfigComment("")
@ConfigComment("Acid can damage chickens - best to leave false because they like to swim")
@ConfigEntry(path = "acid.damage-chickens")
private boolean acidDamageChickens = false;
// Damage
@ConfigComment("Damage that a player will experience in acid. 10 is half their health typically. 5 would be easier.")
@ConfigEntry(path = "acid.damage.acid.player")
private int acidDamage = 10;
@ConfigComment("Damage that monsters experience from acid")
@ConfigEntry(path = "acid.damage.acid.monster")
private int acidDamageMonster = 10;
private int acidDamageMonster = 5;
@ConfigComment("Damage animals experience from acid")
@ConfigEntry(path = "acid.damage.acid.animal")
private int acidDamageAnimal = 10;
private int acidDamageAnimal = 1;
@ConfigComment("Destroy items after this many seconds in acid. 0 = do not destroy items")
@ConfigEntry(path = "acid.damage.acid.item")
private long acidDestroyItemTime = 0;
@ConfigComment("Damage from acid rain")
@ConfigEntry(path = "acid.damage.rain")
private int acidRainDamage = 1;
@ConfigComment("Portion effects from going into acid water")
@ConfigComment("You can list multiple effects")
@ConfigEntry(path = "acid.damage.effects")
@Adapter(PotionEffectListAdapter.class)
private List<PotionEffectType> acidEffects = new ArrayList<>();
@ConfigComment("If player wears a helmet then they will not suffer from acid rain")
@ConfigEntry(path = "acid.damage.protection.helmet")
private boolean helmetProtection;
@ConfigComment("If player wears any set of full armor, they will not suffer from acid damage")
@ConfigEntry(path = "acid.damage.protection.full-armor")
private boolean fullArmorProtection;
@ -206,6 +224,10 @@ public class AISettings implements DataObject, WorldSettings {
@ConfigEntry(path = "world.visible-settings")
private List<String> visibleSettings = new ArrayList<>();
@ConfigComment("Visitor banned commands - Visitors to islands cannot use these commands in this world")
@ConfigEntry(path = "world.visitor-banned-commands")
private List<String> visitorBannedCommands = new ArrayList<>();
// ---------------------------------------------
/* ISLAND */
@ -1371,4 +1393,19 @@ public class AISettings implements DataObject, WorldSettings {
return teamJoinDeathReset;
}
/**
* @return the visitorbannedcommands
*/
@Override
public List<String> getVisitorBannedCommands() {
return visitorBannedCommands;
}
/**
* @param visitorBannedCommands the visitorbannedcommands to set
*/
public void setVisitorBannedCommands(List<String> visitorBannedCommands) {
this.visitorBannedCommands = visitorBannedCommands;
}
}

View File

@ -53,6 +53,8 @@ public class AcidIsland extends Addon {
@Override
public void onDisable(){
acidTask.cancelTasks();
// Save settings
new BSBConfig<>(this, AISettings.class).saveConfigObject(settings);
}
public AISettings getSettings() {