Merge 088bde9d04
into 6d403ee398
This commit is contained in:
commit
b21a04e516
|
@ -1,32 +0,0 @@
|
|||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: "[BUG]"
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
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):**
|
||||
- Server version (`/bukkit:version`):
|
||||
- Installed plugins (`/bukkit:plugins`):
|
||||
- WorldGuard Report Pastebin Link (`/wg report -p`):
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
|
@ -0,0 +1,104 @@
|
|||
name: Bug report
|
||||
description: Create a report to help us improve the Plugin
|
||||
labels: 'bug'
|
||||
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to fill out this bug report for WorldSystem! Fill out the following form to your best ability to help us fix the problem.
|
||||
Only use this if you're absolutely sure that you found a bug and can reproduce it. For anything else, use our Discord server or the wiki.
|
||||
Do NOT use the public issue tracker to report security vulnerabilities! They are disclosed using the [github vulnerabilitie](https://github.com/trainerlord/WorldSystem/security/advisories/new) form!
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: Server Implementation
|
||||
description: Which server Implementation are you using? If your server implementation is not listed, it is not supported. Switch to a supported version first.
|
||||
multiple: false
|
||||
options:
|
||||
- PurPur
|
||||
- Paper
|
||||
- Spigot
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: Server Version
|
||||
description: Which server version version you using? If your server version is not listed, it is not supported. Update to a supported version first.
|
||||
multiple: false
|
||||
options:
|
||||
- '1.19.3'
|
||||
- '1.19.2'
|
||||
- '1.19.1'
|
||||
- '1.19'
|
||||
- '1.18.2'
|
||||
- '1.18.1'
|
||||
- '1.17.1'
|
||||
- '1.16.5'
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Describe the bug
|
||||
description: A clear and concise description of what the bug is.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: To Reproduce
|
||||
description: Steps to reproduce this behaviour
|
||||
placeholder: |
|
||||
1. Go to '...'
|
||||
2. Click on '...'
|
||||
3. Scroll down to '...'
|
||||
4. See error
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Expected behaviour
|
||||
description: A clear and concise description of what you expected to happen.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Screenshots / Videos
|
||||
description: If applicable, add screenshots to help explain your problem.
|
||||
|
||||
- type: input
|
||||
attributes:
|
||||
label: Error log (if applicable)
|
||||
description: If you are reporting a console error, upload any relevant log excerpts to either https://paste.gg/ or https://gist.github.com, save and the paste the link in this box.
|
||||
|
||||
- type: dropdown
|
||||
attributes:
|
||||
label: WorldSystem Version
|
||||
description: What version of WorldSystem are you running? (`/ws help`)
|
||||
multiple: false
|
||||
options:
|
||||
- '2.4.34 (dev)'
|
||||
- '2.4.33 (@crazycloudcraft)'
|
||||
- '2.4.32 (@crazycloudcraft)'
|
||||
- '2.4.20 (default)'
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Checklist
|
||||
description: Make sure you have followed each of the steps outlined here.
|
||||
options:
|
||||
- label: I am using the newest build from https://github.com/trainerlord/WorldSystem and the issue still persists.
|
||||
required: false
|
||||
- label: I am using the newest build from https://github.com/CrazyCloudCraft/WorldSystem and the issue still persists.
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Anything else?
|
||||
description: You can provide additional context below.
|
|
@ -0,0 +1,8 @@
|
|||
blank_issues_enabled: true
|
||||
contact_links:
|
||||
- name: WorldSystem Discord
|
||||
url: https://discord.gg/WYz7Qck
|
||||
about: Our support Discord, please ask questions and search support here.
|
||||
- name: WorldSystem Wiki
|
||||
url: https://github.com/trainerlord/WorldSystem/wiki
|
||||
about: Take a look at the wiki page for instructions how to setup WorldSystem and use its commands.
|
|
@ -1,20 +0,0 @@
|
|||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**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.
|
|
@ -0,0 +1,29 @@
|
|||
name: Feature request
|
||||
description: Suggest an idea for this project
|
||||
labels: 'Enhancement'
|
||||
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to fill out this feature request for WorldSystem! Fill out the following form to your best ability to help us understand your feature request and greately improve the change of it getting added.
|
||||
For anything else than a feature request, use our Discord server or the wiki.
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: What feature do you want to see added?
|
||||
description: A clear and concise description of your feature request.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Are there any alternatives?
|
||||
description: List any alternatives you might have tried
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Anything else?
|
||||
description: You can provide additional context below.
|
|
@ -1,5 +1,5 @@
|
|||
<p align="center">
|
||||
<img src="https://github.com/CrazyCloudCraft/worldsystem-depecated/raw/master/.github/Worldsystemlogo_V24X.png" />
|
||||
<img src="https://raw.githubusercontent.com/trainerlord/WorldSystem/master/.github/Worldsystemlogo_V24X.png" />
|
||||
</p>
|
||||
<p align="center">
|
||||
<a href="https://github.com/trainerlord/WorldSystem/releases">
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 103 KiB |
|
@ -1,16 +0,0 @@
|
|||
#!/bin/bash
|
||||
# Hi, this is a release code changer to change code when you released a new version.
|
||||
# This changes the README.md and pom.xml at the moment.
|
||||
# Mabe i will add here more features or change them.
|
||||
# Configuration
|
||||
|
||||
# What plugin version should be in the pom.xml
|
||||
POMRELEASE=2.4.20-SNAPSHOT
|
||||
|
||||
# What version should be shown in the README.md latest badge
|
||||
RELEASEVER=2.4.11
|
||||
|
||||
|
||||
sed -i "0,:WorldSystem/.*/:s:WorldSystem/$RELEASEVER/" ./README.md $>/dev/null 2>&1
|
||||
sed -i "0,:<version>.*</version>:s:<version>$POMRELEASE</version>" ./../pom.xml $>/dev/null 2>&1
|
||||
exit 0
|
|
@ -1,80 +0,0 @@
|
|||
# For most projects, this workflow file will not need changing; you simply need
|
||||
# to commit it to your repository.
|
||||
#
|
||||
# You may wish to alter this file to override the set of languages analyzed,
|
||||
# or to provide custom queries or build logic.
|
||||
#
|
||||
# ******** NOTE ********
|
||||
# We have attempted to detect the languages in your repository. Please check
|
||||
# the `language` matrix defined below to confirm you have the correct set of
|
||||
# supported CodeQL languages.
|
||||
#
|
||||
name: "CodeQL"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
# The branches below must be a subset of the branches above
|
||||
branches: [ master ]
|
||||
schedule:
|
||||
- cron: '21 9 * * 0'
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
actions: read
|
||||
contents: read
|
||||
security-events: write
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
language: [ 'java' ]
|
||||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
|
||||
# Learn more:
|
||||
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v2
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
# By default, queries listed here will override any specified in a config file.
|
||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
||||
|
||||
- name: Set up JDK 17
|
||||
uses: actions/setup-java@v1
|
||||
with:
|
||||
java-version: 17
|
||||
|
||||
- name: Cache Gradle
|
||||
id: cache-gradle
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: ~/.gradle
|
||||
key: ${{ runner.os }}-gradle
|
||||
|
||||
- uses: actions/checkout@v1
|
||||
|
||||
- name: Grant execute permission to pom.xml
|
||||
run: |
|
||||
wget -q https://dlcdn.apache.org/maven/maven-3/3.8.6/binaries/apache-maven-3.8.6-bin.tar.gz
|
||||
tar xzvf apache-maven-3.8.6-bin.tar.gz
|
||||
export PATH=./apache-maven-3.8.6/bin:$PATH
|
||||
|
||||
- name: Build
|
||||
run: mvn -B package --file pom.xml
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v1
|
|
@ -1,22 +0,0 @@
|
|||
# This is a basic workflow to help you get started with Actions
|
||||
|
||||
name: Release code changer
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "master" ]
|
||||
|
||||
jobs:
|
||||
changeversion:
|
||||
runs-on: ubuntu-latest
|
||||
defaults:
|
||||
run:
|
||||
working-directory: .github
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Run the Version changer
|
||||
run: |
|
||||
chmod +x release-code-changer.sh
|
||||
./release-code-changer.sh
|
491
output.log.txt
491
output.log.txt
|
@ -1,491 +0,0 @@
|
|||
[INFO] Scanning for projects...
|
||||
[WARNING]
|
||||
[WARNING] Some problems were encountered while building the effective model for de.butzlabben:WorldSystem:jar:2.4.20-SNAPSHOT
|
||||
[WARNING] 'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: com.fastasyncworldedit:FastAsyncWorldEdit-Core:jar -> version 2.4.5 vs (?) @ line 121, column 21
|
||||
[WARNING]
|
||||
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
|
||||
[WARNING]
|
||||
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
|
||||
[WARNING]
|
||||
[INFO]
|
||||
[INFO] ---------------------< de.butzlabben:WorldSystem >----------------------
|
||||
[INFO] Building WorldSystem 2.4.20-SNAPSHOT
|
||||
[INFO] --------------------------------[ jar ]---------------------------------
|
||||
[INFO]
|
||||
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ WorldSystem ---
|
||||
[INFO] Using 'UTF-8' encoding to copy filtered resources.
|
||||
[INFO] Copying 19 resources
|
||||
[INFO]
|
||||
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ WorldSystem ---
|
||||
[INFO] Changes detected - recompiling the module!
|
||||
[INFO] Compiling 80 source files to /opt/lol/WorldSystem/target/classes
|
||||
[INFO] -------------------------------------------------------------
|
||||
[WARNING] COMPILATION WARNING :
|
||||
[INFO] -------------------------------------------------------------
|
||||
[WARNING] /opt/lol/WorldSystem/src/main/java/org/bstats/bukkit/Metrics.java: Some input files use or override a deprecated API.
|
||||
[WARNING] /opt/lol/WorldSystem/src/main/java/org/bstats/bukkit/Metrics.java: Recompile with -Xlint:deprecation for details.
|
||||
[INFO] 2 warnings
|
||||
[INFO] -------------------------------------------------------------
|
||||
[INFO] -------------------------------------------------------------
|
||||
[ERROR] COMPILATION ERROR :
|
||||
[INFO] -------------------------------------------------------------
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/listener/CommandListener.java:[74,45] cannot find symbol
|
||||
symbol: method getSpawnGamemode()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/listener/CommandListener.java:[76,33] cannot find symbol
|
||||
symbol: method isSurvival()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/listener/CommandListener.java:[101,29] cannot find symbol
|
||||
symbol: method isSurvival()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/listener/CommandListener.java:[116,33] cannot find symbol
|
||||
symbol: method isSurvival()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/listener/CommandListener.java:[144,33] cannot find symbol
|
||||
symbol: method isSurvival()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[110,39] cannot find symbol
|
||||
symbol: method getWorlddir()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[136,45] cannot find symbol
|
||||
symbol: method getWorlddir()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[147,47] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[206,36] non-static method getSpawn(org.bukkit.entity.Player) cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[207,39] cannot find symbol
|
||||
symbol: method getSpawnGamemode()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[212,54] cannot find symbol
|
||||
symbol: method getWorlddir()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[255,36] non-static method getSpawn(org.bukkit.entity.Player) cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[256,39] cannot find symbol
|
||||
symbol: method getSpawnGamemode()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[274,29] non-static method getUnloadingTime() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[264,58] cannot find symbol
|
||||
symbol: method getWorlddir()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[307,39] cannot find symbol
|
||||
symbol: method getWorlddir()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[328,43] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[347,84] cannot find symbol
|
||||
symbol: method getDefaultWorldTemplate()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[384,43] cannot find symbol
|
||||
symbol: method getWorlddir()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[414,29] non-static method useWorldSpawn() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[415,82] non-static method getWorldSpawn(org.bukkit.World) cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[420,25] cannot find symbol
|
||||
symbol: method isSurvival()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/WorldPlayer.java:[182,85] cannot find symbol
|
||||
symbol: method getWorlddir()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/listener/PlayerListener.java:[30,25] cannot find symbol
|
||||
symbol: method spawnTeleportation()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/listener/PlayerListener.java:[36,56] non-static method getSpawn(org.bukkit.entity.Player) cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/listener/PlayerListener.java:[62,39] cannot find symbol
|
||||
symbol: method getSpawnGamemode()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/listener/PlayerListener.java:[77,33] non-static method useWorldSpawn() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/listener/PlayerListener.java:[78,54] non-static method getWorldSpawn(org.bukkit.World) cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/MoneyUtil.java:[32,63] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/MoneyUtil.java:[46,63] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/MoneyUtil.java:[47,63] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/config/SettingsConfig.java:[60,37] non-static method useWorldSpawn() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/config/SettingsConfig.java:[61,66] non-static method getWorldSpawn(org.bukkit.World) cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/config/SettingsConfig.java:[84,63] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldSettingsCommands.java:[67,47] cannot find symbol
|
||||
symbol: method getWorlddir()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldSettingsCommands.java:[69,34] non-static method isMultiChoose() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldSettingsCommands.java:[71,54] cannot find symbol
|
||||
symbol: method getDefaultWorldTemplate()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldSettingsCommands.java:[75,51] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldSettingsCommands.java:[76,51] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldSettingsCommands.java:[83,55] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldSettingsCommands.java:[84,55] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldSettingsCommands.java:[101,36] cannot find symbol
|
||||
symbol: method getRequestExpire()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldSettingsCommands.java:[175,43] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldSettingsCommands.java:[206,39] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/config/DependenceConfig.java:[57,61] cannot find symbol
|
||||
symbol: method deleteAfter()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/config/DependenceConfig.java:[66,37] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerWrapper.java:[30,44] cannot find symbol
|
||||
symbol: method getUUIDTableName()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerWrapper.java:[47,44] cannot find symbol
|
||||
symbol: method getUUIDTableName()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerWrapper.java:[63,44] cannot find symbol
|
||||
symbol: method getUUIDTableName()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/config/GuiConfig.java:[105,63] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WSCommands.java:[28,37] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WSCommands.java:[79,29] non-static method isMultiChoose() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WSCommands.java:[106,50] cannot find symbol
|
||||
symbol: method getDefaultWorldTemplate()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WSCommands.java:[110,47] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WSCommands.java:[111,47] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WSCommands.java:[197,29] non-static method getSpawn(org.bukkit.entity.Player) cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WSCommands.java:[198,67] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WSCommands.java:[199,43] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WSCommands.java:[203,36] non-static method getSpawn(org.bukkit.entity.Player) cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WSCommands.java:[204,39] cannot find symbol
|
||||
symbol: method getSpawnGamemode()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/config/WorldConfig.java:[54,48] cannot find symbol
|
||||
symbol: method getWorlddir()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/config/WorldConfig.java:[88,42] cannot find symbol
|
||||
symbol: method getWorlddir()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/config/WorldConfig.java:[376,33] cannot find symbol
|
||||
symbol: method contactAuth()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/WorldSystem.java:[51,34] cannot find symbol
|
||||
symbol: variable config
|
||||
location: class de.butzlabben.WorldSystem
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/WorldSystem.java:[69,67] non-static method getLanguage() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/WorldSystem.java:[81,69] cannot find symbol
|
||||
symbol: variable config
|
||||
location: class de.butzlabben.WorldSystem
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/WorldSystem.java:[124,34] cannot find symbol
|
||||
symbol: method getLagCheckPeriod()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/WorldSystem.java:[126,25] cannot find symbol
|
||||
symbol: method useGC()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/WorldSystem.java:[128,38] cannot find symbol
|
||||
symbol: method getGCPeriod()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/WorldSystem.java:[185,25] cannot find symbol
|
||||
symbol: method shouldDelete()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/WorldSystem.java:[186,63] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/WorldSystem.java:[187,93] cannot find symbol
|
||||
symbol: method deleteAfter()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/WorldSystem.java:[194,59] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/WorldSystem.java:[210,42] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/database/SqliteConnection.java:[41,29] cannot find symbol
|
||||
symbol: method getSqliteFile()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/database/DatabaseProvider.java:[14,37] cannot find symbol
|
||||
symbol: method getDatabaseType()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/WorldTemplateProvider.java:[28,52] cannot find symbol
|
||||
symbol: method getConfig()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/gui/worldoption/TntStatus.java:[21,41] cannot find symbol
|
||||
symbol: method getWorlddir()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/gui/worldoption/FireStatus.java:[21,41] cannot find symbol
|
||||
symbol: method getWorlddir()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerPositions.java:[34,26] cannot find symbol
|
||||
symbol: method useWorldSpawnLastLocation()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerPositions.java:[45,40] cannot find symbol
|
||||
symbol: method getWorldsTableName()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerPositions.java:[71,26] cannot find symbol
|
||||
symbol: method useSpawnLastLocation()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerPositions.java:[80,40] cannot find symbol
|
||||
symbol: method getPlayersTableName()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerPositions.java:[112,26] cannot find symbol
|
||||
symbol: method useSpawnLastLocation()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerPositions.java:[119,47] cannot find symbol
|
||||
symbol: method getPlayersTableName()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerPositions.java:[141,26] cannot find symbol
|
||||
symbol: method useWorldSpawnLastLocation()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerPositions.java:[152,40] cannot find symbol
|
||||
symbol: method getWorldsTableName()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerPositions.java:[175,40] cannot find symbol
|
||||
symbol: method getWorldsTableName()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerPositions.java:[196,46] cannot find symbol
|
||||
symbol: method getWorldsTableName()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerPositions.java:[207,47] cannot find symbol
|
||||
symbol: method getPlayersTableName()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/WorldCheckerRunnable.java:[20,37] cannot find symbol
|
||||
symbol: method getEntitysPerWorld()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/database/MysqlConnection.java:[32,95] cannot find symbol
|
||||
symbol: method getMysqlPort()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/database/MysqlConnection.java:[32,29] cannot find symbol
|
||||
symbol: method getMysqlHost()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/database/MysqlConnection.java:[32,58] cannot find symbol
|
||||
symbol: method getMysqlDatabaseName()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/database/MysqlConnection.java:[33,29] cannot find symbol
|
||||
symbol: method getMysqlUser()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/database/MysqlConnection.java:[33,58] cannot find symbol
|
||||
symbol: method getMysqlPassword()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldAdministrateCommand.java:[125,44] non-static method getSpawn(org.bukkit.entity.Player) cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldAdministrateCommand.java:[126,47] cannot find symbol
|
||||
symbol: method getSpawnGamemode()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldAdministrateCommand.java:[177,45] cannot find symbol
|
||||
symbol: method getWorlddir()
|
||||
location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldAdministrateCommand.java:[272,43] non-static method getPrefix() cannot be referenced from a static context
|
||||
[INFO] 100 errors
|
||||
[INFO] -------------------------------------------------------------
|
||||
[INFO] ------------------------------------------------------------------------
|
||||
[INFO] BUILD FAILURE
|
||||
[INFO] ------------------------------------------------------------------------
|
||||
[INFO] Total time: 5.444 s
|
||||
[INFO] Finished at: 2022-10-06T08:17:05+02:00
|
||||
[INFO] ------------------------------------------------------------------------
|
||||
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project WorldSystem: Compilation failure: Compilation failure:
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/listener/CommandListener.java:[74,45] cannot find symbol
|
||||
[ERROR] symbol: method getSpawnGamemode()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/listener/CommandListener.java:[76,33] cannot find symbol
|
||||
[ERROR] symbol: method isSurvival()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/listener/CommandListener.java:[101,29] cannot find symbol
|
||||
[ERROR] symbol: method isSurvival()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/listener/CommandListener.java:[116,33] cannot find symbol
|
||||
[ERROR] symbol: method isSurvival()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/listener/CommandListener.java:[144,33] cannot find symbol
|
||||
[ERROR] symbol: method isSurvival()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[110,39] cannot find symbol
|
||||
[ERROR] symbol: method getWorlddir()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[136,45] cannot find symbol
|
||||
[ERROR] symbol: method getWorlddir()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[147,47] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[206,36] non-static method getSpawn(org.bukkit.entity.Player) cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[207,39] cannot find symbol
|
||||
[ERROR] symbol: method getSpawnGamemode()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[212,54] cannot find symbol
|
||||
[ERROR] symbol: method getWorlddir()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[255,36] non-static method getSpawn(org.bukkit.entity.Player) cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[256,39] cannot find symbol
|
||||
[ERROR] symbol: method getSpawnGamemode()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[274,29] non-static method getUnloadingTime() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[264,58] cannot find symbol
|
||||
[ERROR] symbol: method getWorlddir()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[307,39] cannot find symbol
|
||||
[ERROR] symbol: method getWorlddir()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[328,43] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[347,84] cannot find symbol
|
||||
[ERROR] symbol: method getDefaultWorldTemplate()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[384,43] cannot find symbol
|
||||
[ERROR] symbol: method getWorlddir()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[414,29] non-static method useWorldSpawn() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[415,82] non-static method getWorldSpawn(org.bukkit.World) cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/SystemWorld.java:[420,25] cannot find symbol
|
||||
[ERROR] symbol: method isSurvival()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/WorldPlayer.java:[182,85] cannot find symbol
|
||||
[ERROR] symbol: method getWorlddir()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/listener/PlayerListener.java:[30,25] cannot find symbol
|
||||
[ERROR] symbol: method spawnTeleportation()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/listener/PlayerListener.java:[36,56] non-static method getSpawn(org.bukkit.entity.Player) cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/listener/PlayerListener.java:[62,39] cannot find symbol
|
||||
[ERROR] symbol: method getSpawnGamemode()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/listener/PlayerListener.java:[77,33] non-static method useWorldSpawn() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/listener/PlayerListener.java:[78,54] non-static method getWorldSpawn(org.bukkit.World) cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/MoneyUtil.java:[32,63] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/MoneyUtil.java:[46,63] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/MoneyUtil.java:[47,63] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/config/SettingsConfig.java:[60,37] non-static method useWorldSpawn() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/config/SettingsConfig.java:[61,66] non-static method getWorldSpawn(org.bukkit.World) cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/config/SettingsConfig.java:[84,63] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldSettingsCommands.java:[67,47] cannot find symbol
|
||||
[ERROR] symbol: method getWorlddir()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldSettingsCommands.java:[69,34] non-static method isMultiChoose() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldSettingsCommands.java:[71,54] cannot find symbol
|
||||
[ERROR] symbol: method getDefaultWorldTemplate()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldSettingsCommands.java:[75,51] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldSettingsCommands.java:[76,51] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldSettingsCommands.java:[83,55] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldSettingsCommands.java:[84,55] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldSettingsCommands.java:[101,36] cannot find symbol
|
||||
[ERROR] symbol: method getRequestExpire()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldSettingsCommands.java:[175,43] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldSettingsCommands.java:[206,39] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/config/DependenceConfig.java:[57,61] cannot find symbol
|
||||
[ERROR] symbol: method deleteAfter()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/config/DependenceConfig.java:[66,37] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerWrapper.java:[30,44] cannot find symbol
|
||||
[ERROR] symbol: method getUUIDTableName()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerWrapper.java:[47,44] cannot find symbol
|
||||
[ERROR] symbol: method getUUIDTableName()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerWrapper.java:[63,44] cannot find symbol
|
||||
[ERROR] symbol: method getUUIDTableName()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/config/GuiConfig.java:[105,63] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WSCommands.java:[28,37] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WSCommands.java:[79,29] non-static method isMultiChoose() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WSCommands.java:[106,50] cannot find symbol
|
||||
[ERROR] symbol: method getDefaultWorldTemplate()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WSCommands.java:[110,47] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WSCommands.java:[111,47] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WSCommands.java:[197,29] non-static method getSpawn(org.bukkit.entity.Player) cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WSCommands.java:[198,67] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WSCommands.java:[199,43] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WSCommands.java:[203,36] non-static method getSpawn(org.bukkit.entity.Player) cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WSCommands.java:[204,39] cannot find symbol
|
||||
[ERROR] symbol: method getSpawnGamemode()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/config/WorldConfig.java:[54,48] cannot find symbol
|
||||
[ERROR] symbol: method getWorlddir()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/config/WorldConfig.java:[88,42] cannot find symbol
|
||||
[ERROR] symbol: method getWorlddir()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/config/WorldConfig.java:[376,33] cannot find symbol
|
||||
[ERROR] symbol: method contactAuth()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/WorldSystem.java:[51,34] cannot find symbol
|
||||
[ERROR] symbol: variable config
|
||||
[ERROR] location: class de.butzlabben.WorldSystem
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/WorldSystem.java:[69,67] non-static method getLanguage() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/WorldSystem.java:[81,69] cannot find symbol
|
||||
[ERROR] symbol: variable config
|
||||
[ERROR] location: class de.butzlabben.WorldSystem
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/WorldSystem.java:[124,34] cannot find symbol
|
||||
[ERROR] symbol: method getLagCheckPeriod()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/WorldSystem.java:[126,25] cannot find symbol
|
||||
[ERROR] symbol: method useGC()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/WorldSystem.java:[128,38] cannot find symbol
|
||||
[ERROR] symbol: method getGCPeriod()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/WorldSystem.java:[185,25] cannot find symbol
|
||||
[ERROR] symbol: method shouldDelete()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/WorldSystem.java:[186,63] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/WorldSystem.java:[187,93] cannot find symbol
|
||||
[ERROR] symbol: method deleteAfter()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/WorldSystem.java:[194,59] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/WorldSystem.java:[210,42] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/database/SqliteConnection.java:[41,29] cannot find symbol
|
||||
[ERROR] symbol: method getSqliteFile()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/database/DatabaseProvider.java:[14,37] cannot find symbol
|
||||
[ERROR] symbol: method getDatabaseType()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/wrapper/WorldTemplateProvider.java:[28,52] cannot find symbol
|
||||
[ERROR] symbol: method getConfig()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/gui/worldoption/TntStatus.java:[21,41] cannot find symbol
|
||||
[ERROR] symbol: method getWorlddir()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/gui/worldoption/FireStatus.java:[21,41] cannot find symbol
|
||||
[ERROR] symbol: method getWorlddir()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerPositions.java:[34,26] cannot find symbol
|
||||
[ERROR] symbol: method useWorldSpawnLastLocation()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerPositions.java:[45,40] cannot find symbol
|
||||
[ERROR] symbol: method getWorldsTableName()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerPositions.java:[71,26] cannot find symbol
|
||||
[ERROR] symbol: method useSpawnLastLocation()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerPositions.java:[80,40] cannot find symbol
|
||||
[ERROR] symbol: method getPlayersTableName()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerPositions.java:[112,26] cannot find symbol
|
||||
[ERROR] symbol: method useSpawnLastLocation()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerPositions.java:[119,47] cannot find symbol
|
||||
[ERROR] symbol: method getPlayersTableName()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerPositions.java:[141,26] cannot find symbol
|
||||
[ERROR] symbol: method useWorldSpawnLastLocation()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerPositions.java:[152,40] cannot find symbol
|
||||
[ERROR] symbol: method getWorldsTableName()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerPositions.java:[175,40] cannot find symbol
|
||||
[ERROR] symbol: method getWorldsTableName()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerPositions.java:[196,46] cannot find symbol
|
||||
[ERROR] symbol: method getWorldsTableName()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/PlayerPositions.java:[207,47] cannot find symbol
|
||||
[ERROR] symbol: method getPlayersTableName()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/WorldCheckerRunnable.java:[20,37] cannot find symbol
|
||||
[ERROR] symbol: method getEntitysPerWorld()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/database/MysqlConnection.java:[32,95] cannot find symbol
|
||||
[ERROR] symbol: method getMysqlPort()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/database/MysqlConnection.java:[32,29] cannot find symbol
|
||||
[ERROR] symbol: method getMysqlHost()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/database/MysqlConnection.java:[32,58] cannot find symbol
|
||||
[ERROR] symbol: method getMysqlDatabaseName()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/database/MysqlConnection.java:[33,29] cannot find symbol
|
||||
[ERROR] symbol: method getMysqlUser()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/util/database/MysqlConnection.java:[33,58] cannot find symbol
|
||||
[ERROR] symbol: method getMysqlPassword()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldAdministrateCommand.java:[125,44] non-static method getSpawn(org.bukkit.entity.Player) cannot be referenced from a static context
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldAdministrateCommand.java:[126,47] cannot find symbol
|
||||
[ERROR] symbol: method getSpawnGamemode()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldAdministrateCommand.java:[177,45] cannot find symbol
|
||||
[ERROR] symbol: method getWorlddir()
|
||||
[ERROR] location: class de.butzlabben.world.config.PluginConfig
|
||||
[ERROR] /opt/lol/WorldSystem/src/main/java/de/butzlabben/world/command/commands/WorldAdministrateCommand.java:[272,43] non-static method getPrefix() cannot be referenced from a static context
|
||||
[ERROR] -> [Help 1]
|
||||
[ERROR]
|
||||
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
|
||||
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
|
||||
[ERROR]
|
||||
[ERROR] For more information about the errors and possible solutions, please read the following articles:
|
||||
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
|
50
pom.xml
50
pom.xml
|
@ -6,7 +6,7 @@
|
|||
|
||||
<groupId>de.butzlabben</groupId>
|
||||
<artifactId>WorldSystem</artifactId>
|
||||
<version>2.4.20-SNAPSHOT</version>
|
||||
<version>2.4.34-SNAPSHOT</version>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>17</maven.compiler.source>
|
||||
|
@ -19,6 +19,11 @@
|
|||
<id>spigot-repo</id>
|
||||
<url>https://hub.spigotmc.org/nexus/content/repositories/snapshots/</url>
|
||||
</repository>
|
||||
|
||||
<repository>
|
||||
<id>OnARandomBox</id>
|
||||
<url>https://repo.onarandombox.com/content/groups/public/</url>
|
||||
</repository>
|
||||
|
||||
<repository>
|
||||
<id>placeholderapi</id>
|
||||
|
@ -51,8 +56,8 @@
|
|||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.intellectualsites.bom</groupId>
|
||||
<artifactId>bom-1.18.x</artifactId>
|
||||
<version>1.14</version>
|
||||
<artifactId>bom-newest</artifactId>
|
||||
<version>1.21</version>
|
||||
<scope>import</scope>
|
||||
<type>pom</type>
|
||||
</dependency>
|
||||
|
@ -65,10 +70,17 @@
|
|||
<dependency>
|
||||
<groupId>org.spigotmc</groupId>
|
||||
<artifactId>spigot-api</artifactId>
|
||||
<version>1.19-R0.1-SNAPSHOT</version>
|
||||
<version>1.19.3-R0.1-SNAPSHOT</version> <!-- 1.19 before -->
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!--<dependency>
|
||||
<groupId>com.onarandombox.multiversecore</groupId>
|
||||
<artifactId>Multiverse-Core</artifactId>
|
||||
<version>4.3.2-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>-->
|
||||
|
||||
<dependency>
|
||||
<groupId>me.clip</groupId>
|
||||
<artifactId>placeholderapi</artifactId>
|
||||
|
@ -86,7 +98,7 @@
|
|||
<dependency>
|
||||
<groupId>com.mojang</groupId>
|
||||
<artifactId>authlib</artifactId>
|
||||
<version>1.5.21</version>
|
||||
<version>1.5.25</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
|
@ -100,7 +112,7 @@
|
|||
<dependency>
|
||||
<groupId>com.sk89q.worldedit</groupId>
|
||||
<artifactId>worldedit-bukkit</artifactId>
|
||||
<version>7.2.11-SNAPSHOT</version>
|
||||
<version>7.2.14-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
|
@ -108,25 +120,20 @@
|
|||
<dependency>
|
||||
<groupId>com.sk89q.worldedit</groupId>
|
||||
<artifactId>worldedit-core</artifactId>
|
||||
<version>7.2.11-SNAPSHOT</version>
|
||||
<version>7.2.14-SNAPSHOT</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.fastasyncworldedit</groupId>
|
||||
<artifactId>FastAsyncWorldEdit-Core</artifactId>
|
||||
<version>2.4.5</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.fastasyncworldedit</groupId>
|
||||
<artifactId>FastAsyncWorldEdit-Core</artifactId>
|
||||
<scope>provided</scope>
|
||||
<version>2.5.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.fastasyncworldedit</groupId>
|
||||
<artifactId>FastAsyncWorldEdit-Bukkit</artifactId>
|
||||
<version>2.5.0</version>
|
||||
<scope>provided</scope>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
|
@ -138,14 +145,23 @@
|
|||
<dependency>
|
||||
<groupId>com.github.seeseemelk</groupId>
|
||||
<artifactId>MockBukkit-v1.19</artifactId>
|
||||
<version>2.29.0</version>
|
||||
<version>2.141.0</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.google.guava</groupId>
|
||||
<artifactId>guava</artifactId>
|
||||
<version>31.1-jre</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.code.gson</groupId>
|
||||
<artifactId>gson</artifactId>
|
||||
<version>2.9.1</version>
|
||||
<version>2.10</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.yaml</groupId>
|
||||
<artifactId>snakeyaml</artifactId>
|
||||
<version>1.33</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
|
|
@ -0,0 +1,733 @@
|
|||
package org.bstats.bukkit;
|
||||
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonParser;
|
||||
import com.google.gson.JsonPrimitive;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
import org.bukkit.plugin.RegisteredServiceProvider;
|
||||
import org.bukkit.plugin.ServicePriority;
|
||||
|
||||
import javax.net.ssl.HttpsURLConnection;
|
||||
import java.io.*;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
import java.net.URL;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.Callable;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
import java.util.concurrent.ThreadFactory;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.logging.Level;
|
||||
import java.util.zip.GZIPOutputStream;
|
||||
|
||||
/**
|
||||
* bStats collects some data for plugin authors.
|
||||
* <p>
|
||||
* Check out https://bStats.org/ to learn more about bStats!
|
||||
*/
|
||||
@SuppressWarnings({"WeakerAccess", "unused"})
|
||||
public class Metrics {
|
||||
|
||||
static {
|
||||
// You can use the property to disable the check in your test environment
|
||||
if (System.getProperty("bstats.relocatecheck") == null || !System.getProperty("bstats.relocatecheck").equals("false")) {
|
||||
// Maven's Relocate is clever and changes strings, too. So we have to use this little "trick" ... :D
|
||||
final String defaultPackage = new String(
|
||||
new byte[]{'o', 'r', 'g', '.', 'b', 's', 't', 'a', 't', 's', '.', 'b', 'u', 'k', 'k', 'i', 't'});
|
||||
final String examplePackage = new String(new byte[]{'y', 'o', 'u', 'r', '.', 'p', 'a', 'c', 'k', 'a', 'g', 'e'});
|
||||
// We want to make sure nobody just copy & pastes the example and use the wrong package names
|
||||
if (Metrics.class.getPackage().getName().equals(defaultPackage) || Metrics.class.getPackage().getName().equals(examplePackage)) {
|
||||
throw new IllegalStateException("bStats Metrics class has not been relocated correctly!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// This ThreadFactory enforces the naming convention for our Threads
|
||||
private final ThreadFactory threadFactory = task -> new Thread(task, "bStats-Metrics");
|
||||
|
||||
// Executor service for requests
|
||||
// We use an executor service because the Bukkit scheduler is affected by server lags
|
||||
private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1, threadFactory);
|
||||
|
||||
// The version of this bStats class
|
||||
public static final int B_STATS_VERSION = 1;
|
||||
|
||||
// The url to which the data is sent
|
||||
private static final String URL = "https://bStats.org/submitData/bukkit";
|
||||
|
||||
// Is bStats enabled on this server?
|
||||
private boolean enabled;
|
||||
|
||||
// Should failed requests be logged?
|
||||
private static boolean logFailedRequests;
|
||||
|
||||
// Should the sent data be logged?
|
||||
private static boolean logSentData;
|
||||
|
||||
// Should the response text be logged?
|
||||
private static boolean logResponseStatusText;
|
||||
|
||||
// The uuid of the server
|
||||
private static String serverUUID;
|
||||
|
||||
// The plugin
|
||||
private final Plugin plugin;
|
||||
|
||||
// The plugin id
|
||||
private final int pluginId;
|
||||
|
||||
// A list with all custom charts
|
||||
private final List<CustomChart> charts = new ArrayList<>();
|
||||
|
||||
/**
|
||||
* Class constructor.
|
||||
*
|
||||
* @param plugin The plugin which stats should be submitted.
|
||||
* @param pluginId The id of the plugin.
|
||||
* It can be found at <a href="https://bstats.org/what-is-my-plugin-id">What is my plugin id?</a>
|
||||
*/
|
||||
public Metrics(Plugin plugin, int pluginId) {
|
||||
if (plugin == null) {
|
||||
throw new IllegalArgumentException("Plugin cannot be null!");
|
||||
}
|
||||
this.plugin = plugin;
|
||||
this.pluginId = pluginId;
|
||||
|
||||
// Get the config file
|
||||
File bStatsFolder = new File(plugin.getDataFolder().getParentFile(), "bStats");
|
||||
File configFile = new File(bStatsFolder, "config.yml");
|
||||
YamlConfiguration config = YamlConfiguration.loadConfiguration(configFile);
|
||||
|
||||
// Check if the config file exists
|
||||
if (!config.isSet("serverUuid")) {
|
||||
|
||||
// Add default values
|
||||
config.addDefault("enabled", true);
|
||||
// Every server gets it's unique random id.
|
||||
config.addDefault("serverUuid", UUID.randomUUID().toString());
|
||||
// Should failed request be logged?
|
||||
config.addDefault("logFailedRequests", false);
|
||||
// Should the sent data be logged?
|
||||
config.addDefault("logSentData", false);
|
||||
// Should the response text be logged?
|
||||
config.addDefault("logResponseStatusText", false);
|
||||
|
||||
// Inform the server owners about bStats
|
||||
config.options().header(
|
||||
"bStats collects some data for plugin authors like how many servers are using their plugins.\n" +
|
||||
"To honor their work, you should not disable it.\n" +
|
||||
"This has nearly no effect on the server performance!\n" +
|
||||
"Check out https://bStats.org/ to learn more :)"
|
||||
).copyDefaults(true);
|
||||
try {
|
||||
config.save(configFile);
|
||||
} catch (IOException ignored) { }
|
||||
}
|
||||
|
||||
// Load the data
|
||||
enabled = config.getBoolean("enabled", true);
|
||||
serverUUID = config.getString("serverUuid");
|
||||
logFailedRequests = config.getBoolean("logFailedRequests", false);
|
||||
logSentData = config.getBoolean("logSentData", false);
|
||||
logResponseStatusText = config.getBoolean("logResponseStatusText", false);
|
||||
|
||||
if (enabled) {
|
||||
boolean found = false;
|
||||
// Search for all other bStats Metrics classes to see if we are the first one
|
||||
for (Class<?> service : Bukkit.getServicesManager().getKnownServices()) {
|
||||
try {
|
||||
service.getField("B_STATS_VERSION"); // Our identifier :)
|
||||
found = true; // We aren't the first
|
||||
break;
|
||||
} catch (NoSuchFieldException ignored) { }
|
||||
}
|
||||
// Register our service
|
||||
Bukkit.getServicesManager().register(Metrics.class, this, plugin, ServicePriority.Normal);
|
||||
if (!found) {
|
||||
// We are the first!
|
||||
startSubmitting();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if bStats is enabled.
|
||||
*
|
||||
* @return Whether bStats is enabled or not.
|
||||
*/
|
||||
public boolean isEnabled() {
|
||||
return enabled;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a custom chart.
|
||||
*
|
||||
* @param chart The chart to add.
|
||||
*/
|
||||
public void addCustomChart(CustomChart chart) {
|
||||
if (chart == null) {
|
||||
throw new IllegalArgumentException("Chart cannot be null!");
|
||||
}
|
||||
charts.add(chart);
|
||||
}
|
||||
|
||||
/**
|
||||
* Starts the Scheduler which submits our data every 30 minutes.
|
||||
*/
|
||||
private void startSubmitting() {
|
||||
final Runnable submitTask = () -> {
|
||||
if (!plugin.isEnabled()) { // Plugin was disabled
|
||||
scheduler.shutdown();
|
||||
return;
|
||||
}
|
||||
// Nevertheless we want our code to run in the Bukkit main thread, so we have to use the Bukkit scheduler
|
||||
// Don't be afraid! The connection to the bStats server is still async, only the stats collection is sync ;)
|
||||
Bukkit.getScheduler().runTask(plugin, this::submitData);
|
||||
};
|
||||
|
||||
// Many servers tend to restart at a fixed time at xx:00 which causes an uneven distribution of requests on the
|
||||
// bStats backend. To circumvent this problem, we introduce some randomness into the initial and second delay.
|
||||
// WARNING: You must not modify and part of this Metrics class, including the submit delay or frequency!
|
||||
// WARNING: Modifying this code will get your plugin banned on bStats. Just don't do it!
|
||||
long initialDelay = (long) (1000 * 60 * (3 + Math.random() * 3));
|
||||
long secondDelay = (long) (1000 * 60 * (Math.random() * 30));
|
||||
scheduler.schedule(submitTask, initialDelay, TimeUnit.MILLISECONDS);
|
||||
scheduler.scheduleAtFixedRate(submitTask, initialDelay + secondDelay, 1000 * 60 * 30, TimeUnit.MILLISECONDS);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the plugin specific data.
|
||||
* This method is called using Reflection.
|
||||
*
|
||||
* @return The plugin specific data.
|
||||
*/
|
||||
public JsonObject getPluginData() {
|
||||
JsonObject data = new JsonObject();
|
||||
|
||||
String pluginName = plugin.getDescription().getName();
|
||||
String pluginVersion = plugin.getDescription().getVersion();
|
||||
|
||||
data.addProperty("pluginName", pluginName); // Append the name of the plugin
|
||||
data.addProperty("id", pluginId); // Append the id of the plugin
|
||||
data.addProperty("pluginVersion", pluginVersion); // Append the version of the plugin
|
||||
JsonArray customCharts = new JsonArray();
|
||||
for (CustomChart customChart : charts) {
|
||||
// Add the data of the custom charts
|
||||
JsonObject chart = customChart.getRequestJsonObject();
|
||||
if (chart == null) { // If the chart is null, we skip it
|
||||
continue;
|
||||
}
|
||||
customCharts.add(chart);
|
||||
}
|
||||
data.add("customCharts", customCharts);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the server specific data.
|
||||
*
|
||||
* @return The server specific data.
|
||||
*/
|
||||
private JsonObject getServerData() {
|
||||
// Minecraft specific data
|
||||
int playerAmount;
|
||||
try {
|
||||
// Around MC 1.8 the return type was changed to a collection from an array,
|
||||
// This fixes java.lang.NoSuchMethodError: org.bukkit.Bukkit.getOnlinePlayers()Ljava/util/Collection;
|
||||
Method onlinePlayersMethod = Class.forName("org.bukkit.Server").getMethod("getOnlinePlayers");
|
||||
playerAmount = onlinePlayersMethod.getReturnType().equals(Collection.class)
|
||||
? ((Collection<?>) onlinePlayersMethod.invoke(Bukkit.getServer())).size()
|
||||
: ((Player[]) onlinePlayersMethod.invoke(Bukkit.getServer())).length;
|
||||
} catch (Exception e) {
|
||||
playerAmount = Bukkit.getOnlinePlayers().size(); // Just use the new method if the Reflection failed
|
||||
}
|
||||
int onlineMode = Bukkit.getOnlineMode() ? 1 : 0;
|
||||
String bukkitVersion = Bukkit.getVersion();
|
||||
String bukkitName = Bukkit.getName();
|
||||
|
||||
// OS/Java specific data
|
||||
String javaVersion = System.getProperty("java.version");
|
||||
String osName = System.getProperty("os.name");
|
||||
String osArch = System.getProperty("os.arch");
|
||||
String osVersion = System.getProperty("os.version");
|
||||
int coreCount = Runtime.getRuntime().availableProcessors();
|
||||
|
||||
JsonObject data = new JsonObject();
|
||||
|
||||
data.addProperty("serverUUID", serverUUID);
|
||||
|
||||
data.addProperty("playerAmount", playerAmount);
|
||||
data.addProperty("onlineMode", onlineMode);
|
||||
data.addProperty("bukkitVersion", bukkitVersion);
|
||||
data.addProperty("bukkitName", bukkitName);
|
||||
|
||||
data.addProperty("javaVersion", javaVersion);
|
||||
data.addProperty("osName", osName);
|
||||
data.addProperty("osArch", osArch);
|
||||
data.addProperty("osVersion", osVersion);
|
||||
data.addProperty("coreCount", coreCount);
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Collects the data and sends it afterwards.
|
||||
*/
|
||||
private void submitData() {
|
||||
final JsonObject data = getServerData();
|
||||
|
||||
JsonArray pluginData = new JsonArray();
|
||||
// Search for all other bStats Metrics classes to get their plugin data
|
||||
for (Class<?> service : Bukkit.getServicesManager().getKnownServices()) {
|
||||
try {
|
||||
service.getField("B_STATS_VERSION"); // Our identifier :)
|
||||
|
||||
for (RegisteredServiceProvider<?> provider : Bukkit.getServicesManager().getRegistrations(service)) {
|
||||
try {
|
||||
Object plugin = provider.getService().getMethod("getPluginData").invoke(provider.getProvider());
|
||||
if (plugin instanceof JsonObject) {
|
||||
pluginData.add((JsonObject) plugin);
|
||||
} else { // old bstats version compatibility
|
||||
try {
|
||||
Class<?> jsonObjectJsonSimple = Class.forName("org.json.simple.JSONObject");
|
||||
if (plugin.getClass().isAssignableFrom(jsonObjectJsonSimple)) {
|
||||
Method jsonStringGetter = jsonObjectJsonSimple.getDeclaredMethod("toJSONString");
|
||||
jsonStringGetter.setAccessible(true);
|
||||
String jsonString = (String) jsonStringGetter.invoke(plugin);
|
||||
JsonObject object = new JsonParser().parse(jsonString).getAsJsonObject();
|
||||
pluginData.add(object);
|
||||
}
|
||||
} catch (ClassNotFoundException e) {
|
||||
// minecraft version 1.14+
|
||||
if (logFailedRequests) {
|
||||
this.plugin.getLogger().log(Level.SEVERE, "Encountered unexpected exception", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (NullPointerException | NoSuchMethodException | IllegalAccessException | InvocationTargetException ignored) { }
|
||||
}
|
||||
} catch (NoSuchFieldException ignored) { }
|
||||
}
|
||||
|
||||
data.add("plugins", pluginData);
|
||||
|
||||
// Create a new thread for the connection to the bStats server
|
||||
new Thread(() -> {
|
||||
try {
|
||||
// Send the data
|
||||
sendData(plugin, data);
|
||||
} catch (Exception e) {
|
||||
// Something went wrong! :(
|
||||
if (logFailedRequests) {
|
||||
plugin.getLogger().log(Level.WARNING, "Could not submit plugin stats of " + plugin.getName(), e);
|
||||
}
|
||||
}
|
||||
}).start();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends the data to the bStats server.
|
||||
*
|
||||
* @param plugin Any plugin. It's just used to get a logger instance.
|
||||
* @param data The data to send.
|
||||
* @throws Exception If the request failed.
|
||||
*/
|
||||
private static void sendData(Plugin plugin, JsonObject data) throws Exception {
|
||||
if (data == null) {
|
||||
throw new IllegalArgumentException("Data cannot be null!");
|
||||
}
|
||||
if (Bukkit.isPrimaryThread()) {
|
||||
throw new IllegalAccessException("This method must not be called from the main thread!");
|
||||
}
|
||||
if (logSentData) {
|
||||
plugin.getLogger().info("Sending data to bStats: " + data);
|
||||
}
|
||||
HttpsURLConnection connection = (HttpsURLConnection) new URL(URL).openConnection();
|
||||
|
||||
// Compress the data to save bandwidth
|
||||
byte[] compressedData = compress(data.toString());
|
||||
|
||||
// Add headers
|
||||
connection.setRequestMethod("POST");
|
||||
connection.addRequestProperty("Accept", "application/json");
|
||||
connection.addRequestProperty("Connection", "close");
|
||||
connection.addRequestProperty("Content-Encoding", "gzip"); // We gzip our request
|
||||
connection.addRequestProperty("Content-Length", String.valueOf(compressedData.length));
|
||||
connection.setRequestProperty("Content-Type", "application/json"); // We send our data in JSON format
|
||||
connection.setRequestProperty("User-Agent", "MC-Server/" + B_STATS_VERSION);
|
||||
|
||||
// Send data
|
||||
connection.setDoOutput(true);
|
||||
try (DataOutputStream outputStream = new DataOutputStream(connection.getOutputStream())) {
|
||||
outputStream.write(compressedData);
|
||||
}
|
||||
|
||||
StringBuilder builder = new StringBuilder();
|
||||
try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream()))) {
|
||||
String line;
|
||||
while ((line = bufferedReader.readLine()) != null) {
|
||||
builder.append(line);
|
||||
}
|
||||
}
|
||||
|
||||
if (logResponseStatusText) {
|
||||
plugin.getLogger().info("Sent data to bStats and received response: " + builder);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gzips the given String.
|
||||
*
|
||||
* @param str The string to gzip.
|
||||
* @return The gzipped String.
|
||||
* @throws IOException If the compression failed.
|
||||
*/
|
||||
private static byte[] compress(final String str) throws IOException {
|
||||
if (str == null) {
|
||||
return null;
|
||||
}
|
||||
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
|
||||
try (GZIPOutputStream gzip = new GZIPOutputStream(outputStream)) {
|
||||
gzip.write(str.getBytes(StandardCharsets.UTF_8));
|
||||
}
|
||||
return outputStream.toByteArray();
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a custom chart.
|
||||
*/
|
||||
public static abstract class CustomChart {
|
||||
|
||||
// The id of the chart
|
||||
final String chartId;
|
||||
|
||||
/**
|
||||
* Class constructor.
|
||||
*
|
||||
* @param chartId The id of the chart.
|
||||
*/
|
||||
CustomChart(String chartId) {
|
||||
if (chartId == null || chartId.isEmpty()) {
|
||||
throw new IllegalArgumentException("ChartId cannot be null or empty!");
|
||||
}
|
||||
this.chartId = chartId;
|
||||
}
|
||||
|
||||
private JsonObject getRequestJsonObject() {
|
||||
JsonObject chart = new JsonObject();
|
||||
chart.addProperty("chartId", chartId);
|
||||
try {
|
||||
JsonObject data = getChartData();
|
||||
if (data == null) {
|
||||
// If the data is null we don't send the chart.
|
||||
return null;
|
||||
}
|
||||
chart.add("data", data);
|
||||
} catch (Throwable t) {
|
||||
if (logFailedRequests) {
|
||||
Bukkit.getLogger().log(Level.WARNING, "Failed to get data for custom chart with id " + chartId, t);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
return chart;
|
||||
}
|
||||
|
||||
protected abstract JsonObject getChartData() throws Exception;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a custom simple pie.
|
||||
*/
|
||||
public static class SimplePie extends CustomChart {
|
||||
|
||||
private final Callable<String> callable;
|
||||
|
||||
/**
|
||||
* Class constructor.
|
||||
*
|
||||
* @param chartId The id of the chart.
|
||||
* @param callable The callable which is used to request the chart data.
|
||||
*/
|
||||
public SimplePie(String chartId, Callable<String> callable) {
|
||||
super(chartId);
|
||||
this.callable = callable;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JsonObject getChartData() throws Exception {
|
||||
JsonObject data = new JsonObject();
|
||||
String value = callable.call();
|
||||
if (value == null || value.isEmpty()) {
|
||||
// Null = skip the chart
|
||||
return null;
|
||||
}
|
||||
data.addProperty("value", value);
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a custom advanced pie.
|
||||
*/
|
||||
public static class AdvancedPie extends CustomChart {
|
||||
|
||||
private final Callable<Map<String, Integer>> callable;
|
||||
|
||||
/**
|
||||
* Class constructor.
|
||||
*
|
||||
* @param chartId The id of the chart.
|
||||
* @param callable The callable which is used to request the chart data.
|
||||
*/
|
||||
public AdvancedPie(String chartId, Callable<Map<String, Integer>> callable) {
|
||||
super(chartId);
|
||||
this.callable = callable;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JsonObject getChartData() throws Exception {
|
||||
JsonObject data = new JsonObject();
|
||||
JsonObject values = new JsonObject();
|
||||
Map<String, Integer> map = callable.call();
|
||||
if (map == null || map.isEmpty()) {
|
||||
// Null = skip the chart
|
||||
return null;
|
||||
}
|
||||
boolean allSkipped = true;
|
||||
for (Map.Entry<String, Integer> entry : map.entrySet()) {
|
||||
if (entry.getValue() == 0) {
|
||||
continue; // Skip this invalid
|
||||
}
|
||||
allSkipped = false;
|
||||
values.addProperty(entry.getKey(), entry.getValue());
|
||||
}
|
||||
if (allSkipped) {
|
||||
// Null = skip the chart
|
||||
return null;
|
||||
}
|
||||
data.add("values", values);
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a custom drilldown pie.
|
||||
*/
|
||||
public static class DrilldownPie extends CustomChart {
|
||||
|
||||
private final Callable<Map<String, Map<String, Integer>>> callable;
|
||||
|
||||
/**
|
||||
* Class constructor.
|
||||
*
|
||||
* @param chartId The id of the chart.
|
||||
* @param callable The callable which is used to request the chart data.
|
||||
*/
|
||||
public DrilldownPie(String chartId, Callable<Map<String, Map<String, Integer>>> callable) {
|
||||
super(chartId);
|
||||
this.callable = callable;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JsonObject getChartData() throws Exception {
|
||||
JsonObject data = new JsonObject();
|
||||
JsonObject values = new JsonObject();
|
||||
Map<String, Map<String, Integer>> map = callable.call();
|
||||
if (map == null || map.isEmpty()) {
|
||||
// Null = skip the chart
|
||||
return null;
|
||||
}
|
||||
boolean reallyAllSkipped = true;
|
||||
for (Map.Entry<String, Map<String, Integer>> entryValues : map.entrySet()) {
|
||||
JsonObject value = new JsonObject();
|
||||
boolean allSkipped = true;
|
||||
for (Map.Entry<String, Integer> valueEntry : map.get(entryValues.getKey()).entrySet()) {
|
||||
value.addProperty(valueEntry.getKey(), valueEntry.getValue());
|
||||
allSkipped = false;
|
||||
}
|
||||
if (!allSkipped) {
|
||||
reallyAllSkipped = false;
|
||||
values.add(entryValues.getKey(), value);
|
||||
}
|
||||
}
|
||||
if (reallyAllSkipped) {
|
||||
// Null = skip the chart
|
||||
return null;
|
||||
}
|
||||
data.add("values", values);
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a custom single line chart.
|
||||
*/
|
||||
public static class SingleLineChart extends CustomChart {
|
||||
|
||||
private final Callable<Integer> callable;
|
||||
|
||||
/**
|
||||
* Class constructor.
|
||||
*
|
||||
* @param chartId The id of the chart.
|
||||
* @param callable The callable which is used to request the chart data.
|
||||
*/
|
||||
public SingleLineChart(String chartId, Callable<Integer> callable) {
|
||||
super(chartId);
|
||||
this.callable = callable;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JsonObject getChartData() throws Exception {
|
||||
JsonObject data = new JsonObject();
|
||||
int value = callable.call();
|
||||
if (value == 0) {
|
||||
// Null = skip the chart
|
||||
return null;
|
||||
}
|
||||
data.addProperty("value", value);
|
||||
return data;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a custom multi line chart.
|
||||
*/
|
||||
public static class MultiLineChart extends CustomChart {
|
||||
|
||||
private final Callable<Map<String, Integer>> callable;
|
||||
|
||||
/**
|
||||
* Class constructor.
|
||||
*
|
||||
* @param chartId The id of the chart.
|
||||
* @param callable The callable which is used to request the chart data.
|
||||
*/
|
||||
public MultiLineChart(String chartId, Callable<Map<String, Integer>> callable) {
|
||||
super(chartId);
|
||||
this.callable = callable;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JsonObject getChartData() throws Exception {
|
||||
JsonObject data = new JsonObject();
|
||||
JsonObject values = new JsonObject();
|
||||
Map<String, Integer> map = callable.call();
|
||||
if (map == null || map.isEmpty()) {
|
||||
// Null = skip the chart
|
||||
return null;
|
||||
}
|
||||
boolean allSkipped = true;
|
||||
for (Map.Entry<String, Integer> entry : map.entrySet()) {
|
||||
if (entry.getValue() == 0) {
|
||||
continue; // Skip this invalid
|
||||
}
|
||||
allSkipped = false;
|
||||
values.addProperty(entry.getKey(), entry.getValue());
|
||||
}
|
||||
if (allSkipped) {
|
||||
// Null = skip the chart
|
||||
return null;
|
||||
}
|
||||
data.add("values", values);
|
||||
return data;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a custom simple bar chart.
|
||||
*/
|
||||
public static class SimpleBarChart extends CustomChart {
|
||||
|
||||
private final Callable<Map<String, Integer>> callable;
|
||||
|
||||
/**
|
||||
* Class constructor.
|
||||
*
|
||||
* @param chartId The id of the chart.
|
||||
* @param callable The callable which is used to request the chart data.
|
||||
*/
|
||||
public SimpleBarChart(String chartId, Callable<Map<String, Integer>> callable) {
|
||||
super(chartId);
|
||||
this.callable = callable;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JsonObject getChartData() throws Exception {
|
||||
JsonObject data = new JsonObject();
|
||||
JsonObject values = new JsonObject();
|
||||
Map<String, Integer> map = callable.call();
|
||||
if (map == null || map.isEmpty()) {
|
||||
// Null = skip the chart
|
||||
return null;
|
||||
}
|
||||
for (Map.Entry<String, Integer> entry : map.entrySet()) {
|
||||
JsonArray categoryValues = new JsonArray();
|
||||
categoryValues.add(new JsonPrimitive(entry.getValue()));
|
||||
values.add(entry.getKey(), categoryValues);
|
||||
}
|
||||
data.add("values", values);
|
||||
return data;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Represents a custom advanced bar chart.
|
||||
*/
|
||||
public static class AdvancedBarChart extends CustomChart {
|
||||
|
||||
private final Callable<Map<String, int[]>> callable;
|
||||
|
||||
/**
|
||||
* Class constructor.
|
||||
*
|
||||
* @param chartId The id of the chart.
|
||||
* @param callable The callable which is used to request the chart data.
|
||||
*/
|
||||
public AdvancedBarChart(String chartId, Callable<Map<String, int[]>> callable) {
|
||||
super(chartId);
|
||||
this.callable = callable;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JsonObject getChartData() throws Exception {
|
||||
JsonObject data = new JsonObject();
|
||||
JsonObject values = new JsonObject();
|
||||
Map<String, int[]> map = callable.call();
|
||||
if (map == null || map.isEmpty()) {
|
||||
// Null = skip the chart
|
||||
return null;
|
||||
}
|
||||
boolean allSkipped = true;
|
||||
for (Map.Entry<String, int[]> entry : map.entrySet()) {
|
||||
if (entry.getValue().length == 0) {
|
||||
continue; // Skip this invalid
|
||||
}
|
||||
allSkipped = false;
|
||||
JsonArray categoryValues = new JsonArray();
|
||||
for (int categoryValue : entry.getValue()) {
|
||||
categoryValues.add(new JsonPrimitive(categoryValue));
|
||||
}
|
||||
values.add(entry.getKey(), categoryValues);
|
||||
}
|
||||
if (allSkipped) {
|
||||
// Null = skip the chart
|
||||
return null;
|
||||
}
|
||||
data.add("values", values);
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,79 @@
|
|||
main: de.butzlabben.WorldSystem
|
||||
name: WorldSystem
|
||||
version: '2.4.33'
|
||||
author: Trainerlord
|
||||
authors: [Butzlabben, CrazyCloudCraft]
|
||||
website: https://github.com/CrazyCloudCraft/worldsystem-updated-old
|
||||
api-version: 1.18
|
||||
load: STARTUP
|
||||
depend:
|
||||
- Vault
|
||||
softdepend:
|
||||
- EssentialsX
|
||||
- WorldEdit
|
||||
- FAWE
|
||||
commands:
|
||||
ws:
|
||||
description: All WorldSystem commands
|
||||
permission: ws.*
|
||||
permission-message: You have no rights to use /ws.
|
||||
usage: /ws
|
||||
permissions:
|
||||
ws.*:
|
||||
description: Gives all permissions
|
||||
default: op
|
||||
children:
|
||||
ws.tp.*: true
|
||||
ws.get: true
|
||||
ws.sethome: true
|
||||
ws.tp.world: true
|
||||
ws.tp.toother: true
|
||||
ws.tp.other: true
|
||||
ws.build: true
|
||||
ws.gamemode: true
|
||||
ws.delete: true
|
||||
ws.lag: true
|
||||
ws.big: true
|
||||
ws.large: true
|
||||
ws.get:
|
||||
description: You can create a world via /ws get
|
||||
default: true
|
||||
ws.sethome:
|
||||
description: You can set a different worldspawn
|
||||
default: true
|
||||
ws.tp:
|
||||
description: You can teleport everything
|
||||
default: op
|
||||
children:
|
||||
ws.tp.toother: true
|
||||
ws.tp.other: true
|
||||
ws.tp.world: true
|
||||
ws.tp.world:
|
||||
description: You can teleport to without rights World
|
||||
default: op
|
||||
ws.tp.toother:
|
||||
description: You can teleport across worlds
|
||||
default: op
|
||||
ws.tp.other:
|
||||
description: You can teleport other persons
|
||||
default: op
|
||||
ws.gamemode:
|
||||
description: You can change GameMode on other worlds
|
||||
default: op
|
||||
ws.delete:
|
||||
description: You can delete a world
|
||||
default: op
|
||||
ws.build:
|
||||
description: You can build on other Worlds without WorldPermissions
|
||||
default: op
|
||||
ws.large:
|
||||
description: World size
|
||||
default: op
|
||||
children:
|
||||
ws.big: true
|
||||
ws.big:
|
||||
description: Gives you a bigger world (if set)
|
||||
default: op
|
||||
ws.lag:
|
||||
description: You can see lag messages
|
||||
default: op
|
Loading…
Reference in New Issue