Commit Graph

140 Commits

Author SHA1 Message Date
Risto Lahtela 8c7f4f44af Registered BungeeCord tab completion 2020-10-06 10:59:59 +03:00
Risto Lahtela d197e588ee Fixed newline at the end of hover messages 2020-10-06 10:59:57 +03:00
Risto Lahtela 7087aa2f78 Removed old PlanCommand classes 2020-10-06 10:59:41 +03:00
Risto Lahtela 8939148f95 Fixed Confirmation by implementing equals & hashcode methods 2020-10-06 10:59:40 +03:00
Risto Lahtela 007e5bf1fb Implemented Nukkit MessageBuilder
- Added CMDSender#supportsChatEvents because Nukkit players don't support
  hover or click events. This means that isPlayer method is not sufficient
  for finding out if the sender can produce these events.
2020-10-06 10:59:38 +03:00
Risto Lahtela 97fdc4646b Implemented Velocity MessageBuilder 2020-10-06 10:59:38 +03:00
Risto Lahtela a6af091e89 Implemented Sponge MessageBuilder 2020-10-06 10:59:37 +03:00
Rsl1122 e95e84a89b Implemented Bungee command adapters
- Fixed checkstyle errors
- planbungee & planvelocity now aliases to new
  'planproxy' command
2020-10-06 10:59:36 +03:00
Risto Lahtela 03bfe28762 unfinished work commit 2020-10-06 10:59:23 +03:00
Risto Lahtela 93dc1bbb9e
Added more context to errors (#1450)
* Improved Extension errors
* Removed scary reflective operation exception
* Additional context to SQL Exceptions
* Added error context to Listeners
* Added error context to most error logging places
* Ignore cyclomatic complexity of DBOpException

Adds context to almost all error logging situations, except those where it is unknown, or to commands that are being refactored on another branch.

Close #1245
2020-05-15 12:20:29 +03:00
Risto Lahtela e53b9f1602 Replace ErrorHandler usage with ErrorLogger
This was done to get deprecation to show up where context is not
given to the error logger.
2020-05-14 16:57:29 +03:00
Risto Lahtela 4371595ccf Removed static usage from placeholders
- Dagger used to reduce the amount of method parameters.

Affects:
- #1404
2020-05-01 10:49:55 +03:00
Risto Lahtela d6a7a43428 Made CPU, RAM and Disk gathering async
Affects issues:
- Fixed #1364
2020-04-12 14:26:30 +03:00
Risto Lahtela 4beea6c50f Fixed unfinished RedisBungee setup causing NPE 2020-03-28 13:27:32 +02:00
Risto Lahtela 081f378135 Refactored Address based rules to a class
Affects issues:
- Fixed #1380
2020-03-28 11:51:11 +02:00
Risto Lahtela b339800650 Removed JUnit 4 2020-03-14 12:40:23 +02:00
Rsl1122 9c74c40f72 Renamed some Service related classes 2020-03-14 12:35:06 +02:00
Rsl1122 c87f981d6a Rewrote TPSCounter Task
This commit is a squash of 8 optimization commits to TPSCounter.

1. Extracted duplicate code in TPSCounters to ServerSensors.

- TPSCounter tasks now live inside common module
  - ServerTPSCounter and ProxyTPSCounter
- Gathering methods are implemented with ServerSensor interface:
  Player count, TPS, Entity count, Chunk count
- ServerProperties#getOnlinePlayers was replaced with ServerSensor
- Fixed sonar smells: "Hiding field" in TPSStoreTransaction & NavLink

2. Optimizations down to 0.15ms / run

- Optimized entity+chunk count (same for loop)
- Added warm-up for system resource methods
- Removed Stream API usages
- Removed List copy operation
- Entities & chunks only count once per minute
- CPU & RAM averages now produced with Average class
- Maximum player count per minute now produced with Maximum class

Affects issues:
- Fixed #1289
2020-01-17 21:11:05 +02:00
Rsl1122 8a059ced0b Added SystemUsage class
This class is collection of some methods in TPSCounter that
were refactored out of it.
2020-01-17 21:11:05 +02:00
Rsl1122 8dcfd3ad9a Fixed new sonar smells
- Reduced constructor parameters in Exporter
- Removed Throwable#printStackTrace calls
- Cleaned up SessionsMutator#toJSONMaps a little
- Replaced uses of getString/Number/ methods of PlanConfig with PlanConfig#get
2020-01-17 21:11:04 +02:00
Rsl1122 16a5b41db5 Implemented new GeoLite2 & IP2C geolocators
- GeoLite2 downloads the file using License key, only if EULA is accepted
- Fallback to IP2C if GeoLite2 is not available
- Remove GeoIP.dat after successfully downloading GeoLite2-Country.mmdb
- Added case where geolocation fails to enable and doesn't cause issues

- Adds Apache commons-compress to the dependencies because of a tar archive

Affects issues:
- Fixed #1273
2020-01-17 21:11:02 +02:00
Rsl1122 732c7858d0 Fixing Sonar smells:
- Removed unused code in Reflection
- Removed duplicated Strings in GMTimes
- Added private constructor to TimeZoneUtility
- Renamed local variable in RegisterDateMinimizationPatch
- Replaced Function<String, Boolean> with Predicate in ExtensionRegister
- Changed AFKListeners to use primitive boolean
- Changed Config#get(Setting<Boolean>) uses to isTrue and isFalse
- comment to NukkitListenerSystem
2019-12-17 10:41:50 +02:00
Rsl1122 2fb979fc95 Added api as a dependency to other non-common modules 2019-09-26 11:14:46 +03:00
Rsl1122 c0827bd407 Fixed Recent session list cache invalidation 2019-09-26 11:05:18 +03:00
Rsl1122 004364ca61 Fixed Session list displaying UUIDs for online sessions 2019-09-15 15:37:20 +03:00
Rsl1122 8a5656e9dc Export of /player pages 2019-09-03 09:32:35 +03:00
Rsl1122 3f8a3d1521 Task for JSONCache cleanup 2019-09-03 09:32:33 +03:00
Rsl1122 d47dccc0f7 Removed ResponseCache invalidation calls 2019-09-03 09:32:32 +03:00
Rsl1122 fbdf6dbb45 JSONCache invalidation to some events 2019-09-03 09:32:31 +03:00
Risto Lahtela 66a19d7de1 Removed system. from packages (#1147)
* system.commands -> commands

* system.delivery -> delivery

* system.gathering -> gathering

* system.identification -> identification

* system.processing -> processing

* system.settings -> settings

* system.storage -> storage

* system.version -> version

* system -> com.djrapitops.plan
2019-09-03 09:32:30 +03:00
Risto Lahtela 0650f3e338 Interface redesign package restructuring (#1146)
* command.commands -> command.subcommands

* command -> commands

* commands -> system.commands

* system.locale -> system.settings.locale

* system.settings.changes -> system.settings.config.changes

* system.settings.paths -> system.settings.config.paths

* system.database -> system.storage.database

* db -> system.storage.database

* system.storage.database.access.queries -> system.storage.database.queries

* system.storage.database.access.transactions -> system.storage.database.transactions

* system.storage.database.access -> system.storage.database.operation

* Moved Query classes to system.storage.database.queries

* Moved Executable classes to system.storage.database.transactions

* system.storage.database.patches -> system.storage.database.transactions.patches

* system.file -> system.storage.file

* system.settings.upkeep

* system.storage.upkeep

* system.server.info -> system.identification

* system.importing -> system.gathering.importing

* system.listeners -> system.gathering.listeners

* system.gathering.timed

* Removed duplicate class

* data.container -> system.gathering.domain

* data.plugin.PluginsConfigSection -> system.settings.config.ExtensionSettings

* data.time -> system.gathering.domain

* system.afk -> system.gathering.afk

* system.cache -> system.gathering.cache

* system.status -> system.gathering.listeners

* system.export -> system.delivery.export

* system.webserver -> system.delivery.webserver

* system.json -> system.delivery.rendering.json

* utilities.html -> system.delivery.rendering.html

* system.delivery.rendering.html.graphs -> system.delivery.rendering.json.graphs

* system.delivery.rendering.html.pages -> system.delivery.rendering.pages

* system.delivery.upkeep

* utilities.file -> system.settings.upkeep

* data.store -> system.delivery.domain

* system.update -> system.version

* api.exceptions -> exceptions

* ShutdownHook -> system.gathering

* system.HtmlUtilities - > system.delivery.DeliveryUtilities

* PeriodicAnalysisTask -> PeriodicServerExportTask

* Deprecated APIv4 classes

* Removed ServerTaskSystem (Reduces headache)

* Moved & Fixed some tests
2019-09-03 09:32:26 +03:00
Rsl1122 7b52342d26 Removed pluginbridge as a dependency 2019-09-03 09:32:23 +03:00
Rsl1122 f2b6040469 Fixed /network showing server uuid for online sessions 2019-09-03 09:32:19 +03:00
Rsl1122 22a5348e33 Removed proxy<->server connections:
Removed InfoSystem
- Removed /plan m setup
- Removed /planbungee setup
- Removed /planbungee con
- Removed /plan m con
- Removed all InfoRequests
- Removed /info web endpoint
- Removed ConnectionLog

Removed two config settings:
- Display of session accordion as table
  (Accordion is table now)
- Display of most played world on sessions
  (Always displayed now)

Removed html generation java code for player page
tables

Deprecated PlayerDeath related things

Removed AnalysisContainer data, and
server HealthInformation

Affects issues:
- Close #840
2019-09-03 09:31:53 +03:00
Rsl1122 94506cb771 Removed "Refreshing Analysis" page
- Removed GenerateAnalysis & CacheAnalysis requests from InfoSystem
- Stopped using AnalysisContainer for /server page
- Moved constant placeholders to ServerPage
- Removed BootAnalysisTask, instead using PeriodicAnalysisTask
- Analysis command and periodic analysis task now export instead of
  making requests anywhere, Bungee will not export on analyze command.
2019-09-03 09:31:41 +03:00
Rsl1122 b5fb947724 Moved Bungee tests to JUnit 5 2019-08-10 08:15:43 +03:00
Rsl1122 d81a2932ec [#1034] Setting for ping gathering 2019-05-09 15:41:33 +03:00
Rsl1122 4d261ce6e8 [#1034] sane handling of large delay options 2019-05-09 15:39:22 +03:00
Rsl1122 20e788d2c8 Add a test for Bungee enabling with MySQL 2019-05-05 17:11:55 +03:00
Rsl1122 7510841ebd Fixed old code smells:
Bug:
- Unused result of orElseThrow in DataStoreQueries
- Missing synchronized keywords in ConfigChange
- PlanConfig#hashCode since equals exists

Blocker:
- Add assertion to BungeeSystemTest, SessionTest, CommonDBTest,
  LocaleSystemTest, FileWatcherTest
- Removed BungeeBukkitConnectionTest (Not executed)

Critical:
- Fix typo in ErrorPageLang.AUTHENTICATION_FAILED_401 name
- Duplicate Exception definition in ConfigValueParser

Major:
- Renamed 'name' to 'playerName' in BukkitImporter
- Non generic exceptions to Reflection
- Extracted tenary to if in TableContainer, ProviderInformation

And some minor smells
2019-05-03 15:11:56 +03:00
Rsl1122 bbb1152cd5 [#1012] Removed ServerProperties#getServerId 2019-04-24 22:16:04 +03:00
Rsl1122 e18bf38637 Added a CapabilityService to api module 2019-04-07 13:45:44 +03:00
Risto Lahtela d47c310a70
Merge branch 'development' into extension-api 2019-03-31 15:10:20 +03:00
Rsl1122 ee795b7702 CallEvents.SERVER_PERIODICAL calls 2019-03-31 12:46:26 +03:00
Rsl1122 adb0a93713 Implemented Extension player method calls 2019-03-31 12:36:01 +03:00
Rsl1122 58e7534501 Implemented Caller and CallEvents filtering 2019-03-31 12:26:22 +03:00
Rsl1122 da33ec0b9e Extension data updating to login listeners 2019-03-20 15:55:48 +02:00
Rsl1122 0ed86b532c Workaround for ServerInfo related hang on enable 2019-03-08 16:31:10 +02:00
Risto Lahtela 16e6ef1dc7
[#769, #928] Session save on server shutdown (#927)
* ShutdownHook: No sessions to save check

ShutdownHook now checks if it needs to save any sessions and does not
start the database if no sessions are unsaved.

* SessionCache.getActiveSessions() now immutable

* [#769] Bukkit and Sponge server shutdown save

Implemented following save procedure for Bukkit:
- On plugin disable check if server is shutting down and save sessions
- Shutdown hook triggered on JVM shutdown calls the same session save
- Save clears sessions from cache, so the sessions are not saved twice

Implemented following save procedure for Sponge:
- Listen for GameStoppingServerEvent
- On plugin disable ask listener if shutting down and save sessions
- Shutdown hook triggered on JVM shutdown calls the same session save
- Save clears sessions from cache, so the sessions are not saved twice

Test:
- Tests ShutdownSave on reload
- Tests ShutdownSave on shutdown
- Tests ShutdownSave on JVM shutdown
2019-02-24 12:28:58 +02:00
Rsl1122 4f63a3771b Refactored database clean task out of the database
Fixed SonarCloud smells:

Level blocker:
- Removed 'dbType' field from CreateIndexTransaction (is in Transaction)
- Removed unused 'dbSystem' from AnalysisContainer
2019-02-19 12:51:52 +02:00
Rsl1122 8870e034e1 All database transactions are now performed by a single thread.
- Added a Database Access Lock object
  - Access log lets OperationCriticalTransactions through
  - Transactions skip query access log check
  - executeTransaction returns a Future to allow easier synchronization
  - ServerInfo waits for the server to be registered. This could lead
    to issues if a new server is registering to old database. It should
    not be too big of an issue since no patches need to be applied
    on first enable of the database.
- Added database states: CLOSED <-> INITIALIZING -> OPEN -> CLOSED

These two changes allow restricting queries to the database until the
database has properly initialized (Schema is in correct format)

- Removed SQLDB as a Patch class variable

Tests use Guava direct thread executor on the database to reduce
concurrency issues during tests. Another option would be to wait for
each transaction.
2019-02-16 20:26:08 +02:00
Rsl1122 57695d6e43 Created SessionEndTransaction:
- Removed SaveOperations#session
- Removed DBSystem dependency from SessionCache, so SessionCache does
  not need to be called from async thread. (SessionCache does not save,
  responsibility now with the caller)
2019-02-16 14:29:19 +02:00
Rsl1122 029c1378f3 [#746] Made Server UUID generation random
- Refactored ServerInfo classes a bit in this commit, made them use
  Optional<Server> instead of Optional<Integer> (server id)
- Removed all uses of FetchOperations#getServerId
2019-02-16 14:28:59 +02:00
Rsl1122 f0f32f3ec4 Refactored ServerTable#saveCurrentServerInfo to a transaction 2019-02-16 14:28:58 +02:00
Rsl1122 af674919e7 Refactored TPSTable#insertTPS to a transaction:
- Removed TPSInsertProcessor
2019-02-16 14:28:27 +02:00
Rsl1122 95d14ed73f Rename DataCache to NicknameCache:
- Some errors were encountered with removal of DataCache,
  turns out if a dependency that has dagger modules that use some
  class, a compile error occurs.
  Thus the DataCache class was left in place until the uses are
  removed from the PluginBridge.
2019-02-16 14:28:23 +02:00
Rsl1122 5b3d687a60 Refactored PingTable#insertPing to a transaction 2019-02-16 14:28:20 +02:00
Rsl1122 feaf7849d2 Refactored UsersTable#registerUser to a transaction:
- Removed ProxyRegisterProcessor
- Optimized name updating to occur on login instead of chat events
  - This removes the need to store player names in the DataCache.
2019-02-16 14:28:14 +02:00
Rsl1122 cb22c0f80a Refactored GeoInfo storage into a Transaction:
- Refactored GeoInfoTable#saveGeoInfo into queries
- Removed IPUpdateProcessor
2019-02-16 14:28:07 +02:00
Rsl1122 062ab088b3 Refactored ServerTable#getBukkitServers to queries:
- New query for finding a single server in OptionalFetchQueries
- New query for all servers in LargeFetchQueries
- isProxy and isNotProxy methods to Server class
- Renamed ConnectionSystem bukkitServers to dataServers

This increases some boiler plate java code in some places, but reduces
it in others. This will help with saving Velocity with it's appropriate
name in the future.
2019-02-16 14:26:37 +02:00
Rsl1122 ef85cf942a Move DBType & Database related classes:
system.database.databases -> db
system.database.databases.sql -> db

- DBType
- Database
- SQLDB
- H2DB
- MySQLDB
- SpongeMySQLDB
- SQLiteDB
2019-02-16 14:26:18 +02:00
Rsl1122 beebc4ca01 [#891] Empty world name no longer in Bungee sessions 2019-01-19 13:02:56 +02:00
Rsl1122 8edc621761 Task for network to update configs in database on boot 2019-01-12 13:25:01 +02:00
Rsl1122 e5138d8ec7 [#874] Fixed config read case when key is empty 2019-01-08 17:28:20 +02:00
Rsl1122 a59e5d65ea Fixed "async task can't be called from server thread"
This exception occurred at least on Bukkit.
2019-01-08 11:18:10 +02:00
Rsl1122 e7b9147042 Removed uses of ThreadRunnableFactory in tests 2019-01-06 13:48:38 +02:00
Rsl1122 ff266893d1 More tests against issues found during manual testing
During testing it was found that:
- MySQL patches are still failing if they failed before (test_sessions
  has foreign keys)
- Time.Thresholds.AFK_threshold was empty on fresh install (Leading to
  NPE that was prevented)
2019-01-04 17:09:28 +02:00
Rsl1122 dd904b84fc Updated missing or outdated license headers 2019-01-03 13:12:19 +02:00
Rsl1122 1773dd6b97 Fixed BungeeSystemTest on systems with mysql installed 2019-01-02 16:55:37 +02:00
Rsl1122 0d587f527e Fixed BungeeSystemTest#testEnableNoMySQL:
- Moved the condition to the correct place this time
2018-12-27 19:13:53 +02:00
Rsl1122 26c706a411 Fixed BungeeSystemTest#testEnableNoMySQL
Test was failing because travis runs MySQL on 3306 port with root user,
these were default Plan settings. Fixed by removing message expectation
on travis
2018-12-27 19:05:56 +02:00
Rsl1122 4641c7a4fd Fixed BungeeSystemTest#testEnableNoMySQL
Test was failing because travis runs MySQL on 3306 port with root user,
these were default Plan settings. Fixed by changing port to 6000 in the
test
2018-12-27 19:00:42 +02:00
Rsl1122 3d65e8c745 Unignored 2 BungeeSystem tests
- Caught a PoolInitializationException in MySQL to throw EnableException
  properly.
2018-12-27 18:51:11 +02:00
Rsl1122 c68c95a608 Removed NetworkSettings and ServerSpecificSettings 2018-12-24 12:01:41 +02:00
Rsl1122 a64336803f Bunch of things:
- IntelliJ Inspection fixes.
- Removed some unused code
- Added ConfigNode#getStringMap
- Removed usages of ConfigNode#getChildren
2018-12-20 13:50:40 +02:00
Rsl1122 4c7636b0c2 Removed Maven configurations (poms) 2018-12-19 19:14:06 +02:00
Rsl1122 51eb37c382 Fixed gradle shadow issues
Now relocation works, the relocated items were not being depended on
2018-12-19 19:08:07 +02:00
Rsl1122 8e2df1de9b Fixed Gradle build failing, shadow problems remain.
Shadow does not relocate classes in the final jar for some reason, and the final jar is bigger than what is produced by maven
2018-12-18 23:06:47 +02:00
MicleBrick 65221b1ba9 Add WIP gradle build scripts (#833) by Miclebrick
> Not actually fully functional, but it's a start
2018-12-18 21:13:05 +02:00
Rsl1122 8d199bcdc3 [#845] Added an event that is called when Plan enables.
This includes, but might not be limited to:
- First time the plugin enables successfully
- Plan is reloaded
- Bukkit-BungeeCord setup updates settings
- Plan is enabled after it was disabled

Following events are available:
Bukkit: PlanBukkitEnableEvent
Sponge: PlanSpongeEnableEvent
BungeeCord: PlanBungeeEnableEvent
Velocity: PlanVelocityEnableEvent
2018-12-18 18:01:58 +02:00
Rsl1122 30bce4e365 Made it possible to run tests in parallel by class 2018-12-18 17:16:33 +02:00
Rsl1122 8161488747 [#777] Configuration format change
- Added a new config updater that can move and remove config values
- Updated the config format to be easier to understand and read.
- Made config updater update old configs to the new format
- Removed Settings enum
- Added generics to Setting, changed from interface to a class
- Created new classes that hold static Setting objects
- Added generics to PlanConfig
- Added PlanConfig#get for getting Setting with generic types.
- Moved config calls made during object initialization,
  possibly eliminating bugs that ignored config settings on first boot
- Added more export settings
- Added JSON Export (#700)
- Fixed Buycraft graph not following Locale setting for timestamps
- Extracted PluginBridge Bridge interface for mocking during tests
2018-12-08 11:44:10 +02:00
Rsl1122 f0deb1ce20 Test clean-up with ComponentMocker class rules 2018-11-26 11:02:18 +02:00
Rsl1122 06565c0c83 Fixed some code smells:
- private constructor for DebugChannels, RedisCheck, VersionInfoLoader
- shortened RedisCheck code to use Check
- InfoRequests delegation instead of extension of HashMap to avoid
  serialization issues.
- Moved InfoRequestHandlerFactory inside InfoRequestFactory.Handlers
  to avoid duplicate constructor and variable pointers.
  - Removed Lazy call to itself from the constructor
- equals+hashcode to StackDataSet, ErrorResponse
- Refactored a while loop in VersionInfoLoader to not have two continue
  statements
2018-11-16 21:02:05 +02:00
Rsl1122 ffa04f1b9f Fixed various code smells
- Replaced all uses of boxed primitive type Suppliers with specialized
  suppliers Eg. Supplier<Integer> with IntSupplier
- Replaced uses of CharSet.forName("UTF-8") with StandardCharsets.UTF-8
- Removed Class.forName("org.h2.Driver") as this check is not required
  since JDBC drivers in the classpath are always loaded since JDK 6.
2018-11-16 19:24:19 +02:00
dependabot[bot] d924d2e65b
Bump maven-shade-plugin from 3.2.0 to 3.2.1 in /Plan/bungeecord
Bumps [maven-shade-plugin](https://github.com/apache/maven-shade-plugin) from 3.2.0 to 3.2.1.
- [Release notes](https://github.com/apache/maven-shade-plugin/releases)
- [Commits](https://github.com/apache/maven-shade-plugin/compare/maven-shade-plugin-3.2.0...maven-shade-plugin-3.2.1)

Signed-off-by: dependabot[bot] <support@dependabot.com>
2018-11-12 06:10:24 +00:00
Rsl1122 9801aa584b Simplified TPSBuilder
Removed nested classes that created an inheritance tree 9 deep.
2018-11-11 21:14:49 +02:00
Rsl1122 bdd4d4c333 Removed duplicated code: PlanProxyCommand
PlanBungeeCommand and PlanVelocityCommand were the same, and should
stay the same, with exception of the name.
So new module that defines the name of the main command was created and
now the duplicate code could be removed.
2018-11-11 21:09:22 +02:00
Rsl1122 9eaa350758 [Typo] Fix typo in license headers LGNU -> GNU 2018-11-11 20:55:44 +02:00
Risto Lahtela ebaffcab5e
[Merge] Module split (#786)
* Moved project files to 'common'-module

This is done so that refactoring into multiple smaller modules is easier
as the IDE will not attempt to move tests incorrectly when moving things
between different modules

* Created 'bukkit' module

Following classes were removed during the operation:
- BukkitServerInfo (Renamed to ServerServerInfo)
- SpongeServerInfo (could use ServerServerInfo)
- Hastebin (not viable on every platform, unused)
- HastebinTest
- MockPlayers (unused, bukkit specific)

Changes to classes:
- Renamed Importer to BukkitImporter (contained bukkit related impl.)
- Extracted Importer interface from BukkitImporter
- Turned BukkitPlanModule and BukkitClassBindingModule to interfaces by
  using @Binds annotation
- Added Status class since PlayersOnlineListener had a boolean,
  that stated if kicks were counted.

This commit completes split partially and was not pushed on commit.

* Created 'sponge' module

Changes to classes:
- Turned ServerSuperClassBindingModule, SuperClassBindingModule,
  SpongePlanModule and SpongeClassBindingModule to interfaces by
  using @Binds annotation
- Renamed SystemObjectBindingModule to SystemObjectProvidingModule
- Removed sponge related calls in ServerProperties
- Made EmptyImportSystem injectable

This commit completes split partially and was not pushed on commit.

* Changed shade configuration

Further tweaks required.

* Created 'bungeecord' module

Changes to classes:
- Removed use of BungeePingTimerTask in VelocityTaskSystem
- Removed use of RedisBungee in VelocityServerProperties
- Fixed bukkit command.commands.RegisterCommandFilter package

Changes to project structure:
- Dependency versions now in main pom via dependencyManagement
- Repositories now defined in main pom

* Created 'velocity' module

Changes to classes:
- Made RawDataResponse use Gson via reflection since it is no longer
  available in dependencies of 'common' module

* Created 'plugin' module

This module is for creating a single deployment artifact and testing of
system interactions.

Fixes to tests:
- Reflection no longer fails to initialize if Bukkit.getServer() is null
- PingCountTimerBukkit no longer fails to be created if Reflection fails
- Removed unnecessary @AfterClass from H2Test
- Jar resource path fixes to Mocker

* Shading configuration

org.slf4j classes are relocated in 'common', 'bukkit' & 'bungeecord'.
In 'sponge' & 'velocity' they are not relocated, allowing injection
as plugin logger, while using slf4j-nop for HikariCP logging.

This allows single release artifact.

* Removed 'Icon' from .gitignore

* Attempt to fix test resources

Because all jar resources are located in 'common', an attempt to fetch
them is made to common/target/Plan-common.jar, which for some reason
is a bad path.

This attempts to remedy that by creating a temporary file from an
InputStream, read with Class#getResourceAsStream

Ignored HTTPSWebServerAuthTest as the certificate path was invalid for
some reason.
2018-11-11 12:55:09 +02:00