diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index ef31582..0000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve - ---- - -**Description** -A clear and concise description of what the bug is. - -**Steps to reproduce the behavior:** -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Server Information:** - -[Please complete the following information:] - - Database being used (Flat file, MySQL, Mongo): [] - - OS: [e.g. iOS] - - Java Version: [e.g. Java 8] - - BentoBox version: [e.g. 1.7.2.21] - - Addons installed? [Do '/bentobox version' and copy/paste from the console] - - Other plugins? [Do '/plugins' and copy/paste from the console] - -**Additional context** -Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 066b2d9..0000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project - ---- - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..9e16544 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,37 @@ +name: Build +on: + push: + branches: + - develop + - master + pull_request: + types: [opened, synchronize, reopened] +jobs: + build: + name: Build + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis + - name: Set up JDK 11 + uses: actions/setup-java@v1 + with: + java-version: 11 + - name: Cache SonarCloud packages + uses: actions/cache@v1 + with: + path: ~/.sonar/cache + key: ${{ runner.os }}-sonar + restore-keys: ${{ runner.os }}-sonar + - name: Cache Maven packages + uses: actions/cache@v1 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} + restore-keys: ${{ runner.os }}-m2 + - name: Build and analyze + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + run: mvn -B verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar \ No newline at end of file diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 62d57c1..0000000 --- a/.travis.yml +++ /dev/null @@ -1,18 +0,0 @@ -language: java -sudo: false -addons: - sonarcloud: - organization: "bentobox-world" - -jdk: - - openjdk11 - -script: - # JaCoCo is used to have code coverage, the agent has to be activated - #- mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent org.jacoco:jacoco-maven-plugin:report package sonar:sonar - - mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent install sonar:sonar -Dsonar.projectKey=BentoBoxWorld_AcidIsland - -cache: - directories: - - '$HOME/.m2/repository' - - '$HOME/.sonar/cache' diff --git a/pom.xml b/pom.xml index 2749cd8..da3255d 100644 --- a/pom.xml +++ b/pom.xml @@ -59,13 +59,17 @@ 2.0.4 1.16.3-R0.1-SNAPSHOT - 1.15.4 + 1.16.1 ${build.version}-SNAPSHOT -LOCAL 1.14.6 + + BentoBoxWorld_AcidIsland + bentobox-world + https://sonarcloud.io diff --git a/src/main/java/world/bentobox/acidisland/AISettings.java b/src/main/java/world/bentobox/acidisland/AISettings.java index ec5731c..6f98119 100644 --- a/src/main/java/world/bentobox/acidisland/AISettings.java +++ b/src/main/java/world/bentobox/acidisland/AISettings.java @@ -274,6 +274,12 @@ public class AISettings implements WorldSettings { @ConfigEntry(path = "world.nether.spawn-radius") private int netherSpawnRadius = 32; + @ConfigComment("This option indicates if nether portals should be linked via dimensions.") + @ConfigComment("Option will simulate vanilla portal mechanics that links portals together") + @ConfigComment("or creates a new portal, if there is not a portal in that dimension.") + @ConfigEntry(path = "world.nether.create-and-link-portals", since = "1.14.6") + private boolean makeNetherPortals = false; + // End @ConfigComment("End Nether - if this is false, the end world will not be made and access to") @ConfigComment("the end will not occur. Other plugins may still enable portal usage.") @@ -289,6 +295,11 @@ public class AISettings implements WorldSettings { @ConfigEntry(path = "world.end.sea-height", needsReset = true) private int endSeaHeight = 54; + @ConfigComment("This option indicates if obsidian platform in the end should be generated") + @ConfigComment("when player enters the end world.") + @ConfigEntry(path = "world.end.create-obsidian-platform", since = "1.14.6") + private boolean makeEndPortals = false; + @ConfigEntry(path = "world.end.dragon-spawn", experimental = true) private boolean dragonSpawn = false; @@ -512,6 +523,21 @@ public class AISettings implements WorldSettings { @ConfigEntry(path = "island.commands.on-leave") private List onLeaveCommands = new ArrayList<>(); + @ConfigComment("List of commands that should be executed when the player respawns after death if Flags.ISLAND_RESPAWN is true.") + @ConfigComment("These commands are run by the console, unless otherwise stated using the [SUDO] prefix,") + @ConfigComment("in which case they are executed by the player.") + @ConfigComment("") + @ConfigComment("Available placeholders for the commands are the following:") + @ConfigComment(" * [name]: name of the player") + @ConfigComment("") + @ConfigComment("Here are some examples of valid commands to execute:") + @ConfigComment(" * '[SUDO] bbox version'") + @ConfigComment(" * 'bsbadmin deaths set [player] 0'") + @ConfigComment("") + @ConfigComment("Note that player-executed commands might not work, as these commands can be run with said player being offline.") + @ConfigEntry(path = "island.commands.on-respawn", since = "1.14.0") + private List onRespawnCommands = new ArrayList<>(); + // Sethome @ConfigComment("Allow setting home in the nether. Only available on nether islands, not vanilla nether.") @ConfigEntry(path = "island.sethome.nether.allow") @@ -1520,6 +1546,24 @@ public class AISettings implements WorldSettings { public void setOnLeaveCommands(List onLeaveCommands) { this.onLeaveCommands = onLeaveCommands; } + + /** + * @return the onRespawnCommands + */ + @Override + public List getOnRespawnCommands() { + return onRespawnCommands; + } + + /** + * Sets on respawn commands. + * + * @param onRespawnCommands the on respawn commands + */ + public void setOnRespawnCommands(List onRespawnCommands) { + this.onRespawnCommands = onRespawnCommands; + } + /** * @return the onJoinResetHealth */ @@ -1884,4 +1928,36 @@ public class AISettings implements WorldSettings { public void setMobLimitSettings(List mobLimitSettings) { this.mobLimitSettings = mobLimitSettings; } + + /** + * @return the makeNetherPortals + */ + @Override + public boolean isMakeNetherPortals() { + return makeNetherPortals; + } + + /** + * @return the makeEndPortals + */ + @Override + public boolean isMakeEndPortals() { + return makeEndPortals; + } + + /** + * Sets make nether portals. + * @param makeNetherPortals the make nether portals + */ + public void setMakeNetherPortals(boolean makeNetherPortals) { + this.makeNetherPortals = makeNetherPortals; + } + + /** + * Sets make end portals. + * @param makeEndPortals the make end portals + */ + public void setMakeEndPortals(boolean makeEndPortals) { + this.makeEndPortals = makeEndPortals; + } } diff --git a/src/main/resources/addon.yml b/src/main/resources/addon.yml index 1cd22ae..f31684a 100755 --- a/src/main/resources/addon.yml +++ b/src/main/resources/addon.yml @@ -1,7 +1,7 @@ name: AcidIsland main: world.bentobox.acidisland.AcidIsland version: ${version}${build.number} -api-version: 1.14 +api-version: ${bentobox.version} metrics: true repository: "BentoBoxWorld/AcidIsland" icon: "OAK_BOAT" diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 4410753..b9275a2 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -171,6 +171,10 @@ world: # Minimum is 0 (not recommended), maximum is 100. Default is 25. # Only applies to vanilla nether spawn-radius: 25 + # This option indicates if nether portals should be linked via dimensions. + # Option will simulate vanilla portal mechanics that links portals together or creates a new portal, if there is not a portal in other dimension. + # Added since 1.14.6 + create-and-link-portals: false end: # End Nether - if this is false, the end world will not be made and access to # the end will not occur. Other plugins may still enable portal usage. @@ -182,6 +186,9 @@ world: # Changing mid-game will cause problems! # /!\ BentoBox currently does not support changing this value mid-game. If you do need to change it, do a full reset of your databases and worlds. sea-height: 54 + # This option indicates if obsidian platform in the end should be generated when player enters the end world. + # Added since 1.14.6 + create-obsidian-platform: false # /!\ This feature is experimental and might not work as expected or might not work at all. dragon-spawn: false # Removing mobs - this kills all monsters in the vicinity. Benefit is that it helps @@ -445,6 +452,20 @@ island: # # Note that player-executed commands might not work, as these commands can be run with said player being offline. on-leave: [] + # Returns a list of commands that should be executed when the player respawns after death if Flags.ISLAND_RESPAWN is true. + # These commands are run by the console, unless otherwise stated using the [SUDO] prefix, + # in which case they are executed by the player. + # + # Available placeholders for the commands are the following: + # * [name]: name of the player + # + # Here are some examples of valid commands to execute: + # * '[SUDO] bbox version' + # * 'bsbadmin deaths set [player] 0' + # + # Note that player-executed commands might not work, as these commands can be run with said player being offline. + # Added since 1.14.0. + on-respawn: [] sethome: nether: # Allow setting home in the nether. Only available on nether islands, not vanilla nether.