From 57ac4e072c36d80e3bbcc960e0e715afda5d9080 Mon Sep 17 00:00:00 2001 From: IzzelAliz Date: Sat, 2 Mar 2019 15:48:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=8D=A2=E8=87=B3=20Gradle?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 5 +- TabooLib.iml | 133 ----- build.gradle | 45 ++ gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 54731 bytes gradle/wrapper/gradle-wrapper.properties | 6 + gradlew | 172 ++++++ gradlew.bat | 84 +++ pom.xml | 263 --------- settings.gradle | 1 + .../org/javalite/activejdbc/MetaModel.java | 514 ------------------ ...ooLibDeprecated.jar => TabooLibDeprecated} | Bin .../eagletdl/AlreadyStartException.java | 0 .../com/ilummc/eagletdl/CompleteEvent.java | 0 .../com/ilummc/eagletdl/ConnectedEvent.java | 0 .../DoNotSupportMultipleThreadException.java | 0 .../com/ilummc/eagletdl/EagletHandler.java | 0 .../com/ilummc/eagletdl/EagletTask.java | 0 .../com/ilummc/eagletdl/ErrorEvent.java | 0 .../eagletdl/HashNotMatchException.java | 0 .../com/ilummc/eagletdl/HashUtil.java | 0 .../com/ilummc/eagletdl/ProgressEvent.java | 0 .../ilummc/eagletdl/RetryFailedException.java | 0 .../ilummc/eagletdl/SingleThreadDownload.java | 0 .../com/ilummc/eagletdl/SplitDownload.java | 0 .../com/ilummc/eagletdl/StartEvent.java | 0 .../com/ilummc/tlib/ExampleMain.java | 0 .../{java => scala}/com/ilummc/tlib/TLib.java | 0 .../ilummc/tlib/annotations/Dependencies.java | 0 .../ilummc/tlib/annotations/Dependency.java | 0 .../com/ilummc/tlib/annotations/Logger.java | 0 .../tlib/annotations/PluginInstance.java | 0 .../com/ilummc/tlib/annotations/TConfig.java | 0 .../tlib/annotations/TLocalePlugin.java | 0 .../tlib/annotations/clr/CommandHandler.java | 0 .../tlib/annotations/clr/CommandHandlers.java | 0 .../com/ilummc/tlib/annotations/clr/Sub.java | 0 .../ilummc/tlib/annotations/db/Database.java | 0 .../tlib/annotations/db/DatabasePassword.java | 0 .../tlib/annotations/db/DatabaseType.java | 0 .../tlib/annotations/db/DatabaseUrl.java | 0 .../tlib/annotations/db/DatabaseUser.java | 0 .../ilummc/tlib/annotations/db/SQLTable.java | 0 .../com/ilummc/tlib/bean/Property.java | 0 .../ilummc/tlib/bean/PropertyTypeAdaptor.java | 0 .../com/ilummc/tlib/bungee/api/ChatColor.java | 0 .../tlib/bungee/api/ChatMessageType.java | 0 .../tlib/bungee/api/chat/BaseComponent.java | 0 .../tlib/bungee/api/chat/ClickEvent.java | 0 .../bungee/api/chat/ComponentBuilder.java | 0 .../tlib/bungee/api/chat/HoverEvent.java | 0 .../tlib/bungee/api/chat/TextComponent.java | 0 .../api/chat/TranslatableComponent.java | 0 .../bungee/chat/BaseComponentSerializer.java | 0 .../tlib/bungee/chat/ComponentSerializer.java | 0 .../bungee/chat/TextComponentSerializer.java | 0 .../chat/TranslatableComponentSerializer.java | 0 .../ilummc/tlib/clr/CommandLineResolver.java | 0 .../ilummc/tlib/compat/PlaceholderHook.java | 0 .../com/ilummc/tlib/config/TLibConfig.java | 0 .../com/ilummc/tlib/db/Pool.java | 0 .../com/ilummc/tlib/db/TLibDataSource.java | 0 .../ilummc/tlib/dependency/TDependency.java | 0 .../tlib/dependency/TDependencyLoader.java | 0 .../com/ilummc/tlib/filter/TLoggerFilter.java | 0 .../tlib/filter/TLoggerFilterHandler.java | 0 .../tlib/filter/impl/FilterConfiguration.java | 0 .../filter/impl/FilterExceptionMirror.java | 0 .../impl/FilterInvalidPluginLoader.java | 0 .../ilummc/tlib/inject/TConfigInjector.java | 0 .../ilummc/tlib/inject/TConfigWatcher.java | 0 .../tlib/inject/TDependencyInjector.java | 0 .../ilummc/tlib/inject/TLoggerManager.java | 0 .../ilummc/tlib/inject/TPluginManager.java | 0 .../com/ilummc/tlib/logger/TLogger.java | 0 .../com/ilummc/tlib/nms/ActionBar.java | 0 .../com/ilummc/tlib/resources/TLocale.java | 0 .../tlib/resources/TLocaleInstance.java | 0 .../ilummc/tlib/resources/TLocaleLoader.java | 0 .../ilummc/tlib/resources/TLocaleSender.java | 0 .../tlib/resources/TLocaleSerialize.java | 0 .../tlib/resources/type/TLocaleActionBar.java | 0 .../tlib/resources/type/TLocaleBook.java | 0 .../tlib/resources/type/TLocaleBossBar.java | 0 .../tlib/resources/type/TLocaleJson.java | 0 .../tlib/resources/type/TLocaleSound.java | 0 .../tlib/resources/type/TLocaleText.java | 0 .../tlib/resources/type/TLocaleTitle.java | 0 .../com/ilummc/tlib/util/IO.java | 0 .../com/ilummc/tlib/util/Ref.java | 0 .../com/ilummc/tlib/util/Strings.java | 0 .../com/ilummc/tlib/util/asm/AsmAnalyser.java | 0 .../ilummc/tlib/util/asm/AsmClassLoader.java | 0 .../tlib/util/asm/AsmClassTransformer.java | 0 .../{tlib/scala => tlibscala}/AsyncTask.scala | 2 +- .../{tlib/scala => tlibscala}/Example.scala | 4 +- .../{tlib/scala => tlibscala}/Implicits.scala | 4 +- .../{tlib/scala => tlibscala}/Prelude.scala | 2 +- .../ScalaTaskExecutor.scala | 4 +- .../{tlib/scala => tlibscala}/Task.scala | 2 +- .../runtime/RichLocation.scala | 2 +- .../runtime/RichOfflinePlayer.scala | 2 +- .../runtime/RichPlayer.scala | 2 +- .../runtime/RichVector.scala | 2 +- .../me/skymc/taboolib/Main.java | 0 .../me/skymc/taboolib/TabooLib.java | 0 .../me/skymc/taboolib/TabooLibDatabase.java | 0 .../me/skymc/taboolib/TabooLibLoader.java | 5 +- .../skymc/taboolib/anvil/AnvilContainer.java | 0 .../taboolib/anvil/AnvilContainerAPI.java | 0 .../anvil/AnvilContainerGenerator.java | 0 .../bookformatter/BookAchievement.java | 0 .../taboolib/bookformatter/BookFormatter.java | 0 .../bookformatter/BookReflection.java | 0 .../bookformatter/action/ClickAction.java | 0 .../bookformatter/action/HoverAction.java | 0 .../bookformatter/builder/BookBuilder.java | 0 .../bookformatter/builder/PageBuilder.java | 0 .../bookformatter/builder/TextBuilder.java | 0 .../me/skymc/taboolib/bstats/Metrics.java | 0 .../skymc/taboolib/bungee/TabooLibBungee.java | 0 .../me/skymc/taboolib/client/LogClient.java | 0 .../skymc/taboolib/cloud/TCloudCommand.java | 0 .../me/skymc/taboolib/cloud/TCloudLoader.java | 0 .../taboolib/cloud/expansion/Expansion.java | 0 .../cloud/expansion/ExpansionType.java | 0 .../skymc/taboolib/commands/SubCommand.java | 0 .../taboolib/commands/SubCommandExecutor.java | 0 .../commands/TabooLibExecuteCommand.java | 0 .../commands/TabooLibMainCommand.java | 0 .../builder/SimpleCommandBuilder.java | 0 .../builder/type/CompleterCommand.java | 0 .../commands/builder/type/CompleterTab.java | 0 .../commands/internal/BaseMainCommand.java | 0 .../commands/internal/BaseSubCommand.java | 0 .../commands/internal/TBaseCommand.java | 0 .../taboolib/commands/internal/TCommand.java | 0 .../commands/internal/TCommandHandler.java | 0 .../commands/internal/plugin/TLibLocale.java | 0 .../internal/type/CommandArgument.java | 0 .../commands/internal/type/CommandField.java | 0 .../internal/type/CommandRegister.java | 0 .../commands/internal/type/CommandType.java | 0 .../commands/language/Language2Command.java | 0 .../locale/TabooLibLocaleCommand.java | 0 .../plugin/TabooLibPluginCommand.java | 0 .../commands/taboolib/AttributesCommand.java | 0 .../commands/taboolib/EnchantCommand.java | 0 .../commands/taboolib/FlagCommand.java | 0 .../commands/taboolib/ImportCommand.java | 0 .../commands/taboolib/InfoCommand.java | 0 .../commands/taboolib/ItemCommand.java | 0 .../commands/taboolib/ItemListCommand.java | 0 .../commands/taboolib/PotionCommand.java | 0 .../commands/taboolib/SaveCommand.java | 0 .../commands/taboolib/SlotCommand.java | 0 .../commands/taboolib/SoundsCommand.java | 0 .../commands/taboolib/TagDeleteCommand.java | 0 .../commands/taboolib/TagDisplayCommand.java | 0 .../commands/taboolib/TagPrefixCommand.java | 0 .../commands/taboolib/TagSuffixCommand.java | 0 .../commands/taboolib/VariableGetCommand.java | 0 .../commands/taboolib/VariableSetCommand.java | 0 .../listener/ListenerItemListCommand.java | 0 .../listener/ListenerSoundsCommand.java | 0 .../common/configuration/TConfiguration.java | 0 .../taboolib/common/function/TFunction.java | 0 .../common/function/TFunctionLoader.java | 0 .../skymc/taboolib/common/inject/TInject.java | 0 .../taboolib/common/inject/TInjectLoader.java | 0 .../taboolib/common/inject/TInjectTask.java | 0 .../taboolib/common/json/TJsonArray.java | 8 +- .../taboolib/common/json/TJsonObject.java | 0 .../taboolib/common/loader/Instantiable.java | 0 .../common/loader/InstantiableLoader.java | 0 .../skymc/taboolib/common/nms/NMSHandler.java | 0 .../taboolib/common/nms/NMSHandlerImpl.java | 0 .../common/packet/TPacketHandler.java | 0 .../common/packet/TPacketListener.java | 0 .../packet/channel/ChannelExecutor.java | 0 .../channel/InternalChannelExecutor.java | 0 .../common/pathfinder/PathfinderCreator.java | 0 .../common/pathfinder/PathfinderExecutor.java | 0 .../taboolib/common/pathfinder/SimpleAi.java | 0 .../common/pathfinder/SimpleAiSelector.java | 0 .../internal/InternalPathfinderCreator.java | 0 .../internal/InternalPathfinderExecutor.java | 0 .../common/playercontainer/Container.java | 0 .../playercontainer/PlayerContainer.java | 0 .../PlayerContainerLoader.java | 0 .../taboolib/common/schedule/TSchedule.java | 0 .../common/schedule/TScheduleData.java | 0 .../common/schedule/TScheduleLoader.java | 0 .../taboolib/common/util/SimpleCounter.java | 0 .../taboolib/common/util/SimpleIterator.java | 0 .../common/util/SimpleReflection.java | 0 .../versioncontrol/SimpleClassVisitor.java | 0 .../versioncontrol/SimpleMethodVisitor.java | 0 .../versioncontrol/SimpleVersionControl.java | 0 .../me/skymc/taboolib/damage/DamageUtils.java | 0 .../taboolib/database/GlobalDataManager.java | 0 .../taboolib/database/PlayerDataManager.java | 0 .../taboolib/events/CustomBookOpenEvent.java | 0 .../taboolib/events/PlayerJumpEvent.java | 0 .../taboolib/events/PlayerLoadedEvent.java | 0 .../taboolib/events/TPluginEnableEvent.java | 0 .../taboolib/events/TPluginLoadEvent.java | 0 .../itag/AsyncPlayerReceiveNameTagEvent.java | 0 .../itag/PlayerReceiveNameTagEvent.java | 0 .../exception/PlayerOfflineException.java | 0 .../exception/PluginNotFoundException.java | 0 .../skymc/taboolib/fileutils/ConfigUtils.java | 0 .../skymc/taboolib/fileutils/EncodeUtils.java | 0 .../skymc/taboolib/fileutils/FileUtils.java | 0 .../me/skymc/taboolib/fileutils/TLogs.java | 0 .../skymc/taboolib/inventory/ItemUtils.java | 0 .../inventory/builder/ItemBuilder.java | 0 .../inventory/builder/MenuBuilder.java | 0 .../builder/menu/MenuBuilderCallable.java | 0 .../builder/menu/MenuBuilderEvent.java | 0 .../builder/menu/MenuBuilderHolder.java | 0 .../builder/menu/MenuBuilderItem.java | 0 .../builder/menu/MenuBuilderListener.java | 0 .../taboolib/itagapi/TagDataHandler.java | 0 .../me/skymc/taboolib/itagapi/TagPacket.java | 0 .../skymc/taboolib/itagapi/TagPlayerData.java | 0 .../me/skymc/taboolib/itagapi/TagUtils.java | 0 .../taboolib/javascript/ScriptHandler.java | 0 .../taboolib/json/tellraw/TellrawCreator.java | 0 .../taboolib/json/tellraw/TellrawJson.java | 0 .../taboolib/json/tellraw/TellrawVersion.java | 0 .../tellraw/internal/AbstractTellraw.java | 0 .../tellraw/internal/InternalTellraw.java | 0 .../taboolib/listener/ListenerNetWork.java | 0 .../listener/ListenerPlayerCommand.java | 0 .../listener/ListenerPlayerJoinAndQuit.java | 0 .../taboolib/listener/ListenerPlayerJump.java | 0 .../taboolib/listener/ListenerPlugin.java | 0 .../me/skymc/taboolib/listener/TListener.java | 0 .../taboolib/listener/TListenerCommand.java | 0 .../taboolib/listener/TListenerHandler.java | 0 .../taboolib/methods/ReflectionUtils.java | 0 .../me/skymc/taboolib/mysql/IColumn.java | 0 .../me/skymc/taboolib/mysql/IHost.java | 0 .../taboolib/mysql/builder/SQLColumn.java | 0 .../mysql/builder/SQLColumnOption.java | 0 .../taboolib/mysql/builder/SQLColumnType.java | 0 .../taboolib/mysql/builder/SQLExecutor.java | 0 .../skymc/taboolib/mysql/builder/SQLHost.java | 0 .../taboolib/mysql/builder/SQLTable.java | 0 .../mysql/builder/query/RunnableQuery.java | 0 .../mysql/builder/query/RunnableUpdate.java | 0 .../mysql/builder/query/TaskResult.java | 0 .../mysql/builder/query/TaskStatement.java | 0 .../taboolib/mysql/hikari/HikariHandler.java | 0 .../taboolib/mysql/hikari/MapDataSource.java | 0 .../taboolib/mysql/sqlite/SQLiteColumn.java | 0 .../mysql/sqlite/SQLiteColumnOption.java | 0 .../mysql/sqlite/SQLiteColumnType.java | 0 .../taboolib/mysql/sqlite/SQLiteHost.java | 0 .../taboolib/object/WeightCollection.java | 0 .../me/skymc/taboolib/particle/EffLib.java | 0 .../taboolib/particle/pack/ParticleData.java | 0 .../taboolib/particle/pack/ParticlePack.java | 0 .../taboolib/particle/pack/ParticleType.java | 0 .../skymc/taboolib/playerdata/DataUtils.java | 0 .../taboolib/plugin/PluginLoadState.java | 0 .../taboolib/plugin/PluginLoadStateType.java | 0 .../taboolib/plugin/PluginUnloadState.java | 0 .../me/skymc/taboolib/plugin/PluginUtils.java | 0 .../taboolib/scoreboard/ScoreboardUtil.java | 0 .../taboolib/scoreboard/SimpleScoreboard.java | 0 .../skymc/taboolib/socket/TabooLibClient.java | 0 .../skymc/taboolib/socket/TabooLibServer.java | 0 .../taboolib/socket/TabooLibSettings.java | 0 .../skymc/taboolib/socket/packet/Packet.java | 0 .../taboolib/socket/packet/PacketParser.java | 0 .../socket/packet/PacketSerializer.java | 0 .../taboolib/socket/packet/PacketType.java | 0 .../taboolib/socket/packet/PacketValue.java | 0 .../socket/packet/impl/PacketAlive.java | 0 .../socket/packet/impl/PacketCommand.java | 0 .../socket/packet/impl/PacketEmpty.java | 0 .../socket/packet/impl/PacketHeartbeat.java | 0 .../socket/packet/impl/PacketJoin.java | 0 .../socket/packet/impl/PacketMessage.java | 0 .../socket/packet/impl/PacketQuit.java | 0 .../socket/server/ClientConnection.java | 0 .../me/skymc/taboolib/sound/SoundPack.java | 0 .../me/skymc/taboolib/sound/SoundUtils.java | 0 .../me/skymc/taboolib/string/ArrayUtils.java | 0 .../me/skymc/taboolib/string/Language.java | 0 .../skymc/taboolib/string/LanguagePack.java | 0 .../skymc/taboolib/string/LanguageUtils.java | 0 .../skymc/taboolib/string/PatternUtils.java | 0 .../me/skymc/taboolib/string/StringUtils.java | 0 .../taboolib/string/VariableFormatter.java | 0 .../taboolib/string/language2/Language2.java | 0 .../string/language2/Language2Format.java | 0 .../string/language2/Language2Line.java | 0 .../string/language2/Language2Type.java | 0 .../string/language2/Language2Value.java | 0 .../language2/value/Language2Action.java | 0 .../string/language2/value/Language2Book.java | 0 .../string/language2/value/Language2Json.java | 0 .../language2/value/Language2Json2.java | 0 .../language2/value/Language2Sound.java | 0 .../string/language2/value/Language2Text.java | 0 .../language2/value/Language2Title.java | 0 .../taboolib/support/SupportWorldGuard.java | 0 .../taboolib/timeutil/TimeFormatter.java | 0 .../me/skymc/taboolib/update/UpdateTask.java | 0 311 files changed, 332 insertions(+), 930 deletions(-) delete mode 100644 TabooLib.iml create mode 100644 build.gradle create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat delete mode 100644 pom.xml create mode 100644 settings.gradle delete mode 100644 src/main/java/org/javalite/activejdbc/MetaModel.java rename src/main/resources/Addons/{TabooLibDeprecated.jar => TabooLibDeprecated} (100%) rename src/main/{java => scala}/com/ilummc/eagletdl/AlreadyStartException.java (100%) rename src/main/{java => scala}/com/ilummc/eagletdl/CompleteEvent.java (100%) rename src/main/{java => scala}/com/ilummc/eagletdl/ConnectedEvent.java (100%) rename src/main/{java => scala}/com/ilummc/eagletdl/DoNotSupportMultipleThreadException.java (100%) rename src/main/{java => scala}/com/ilummc/eagletdl/EagletHandler.java (100%) rename src/main/{java => scala}/com/ilummc/eagletdl/EagletTask.java (100%) rename src/main/{java => scala}/com/ilummc/eagletdl/ErrorEvent.java (100%) rename src/main/{java => scala}/com/ilummc/eagletdl/HashNotMatchException.java (100%) rename src/main/{java => scala}/com/ilummc/eagletdl/HashUtil.java (100%) rename src/main/{java => scala}/com/ilummc/eagletdl/ProgressEvent.java (100%) rename src/main/{java => scala}/com/ilummc/eagletdl/RetryFailedException.java (100%) rename src/main/{java => scala}/com/ilummc/eagletdl/SingleThreadDownload.java (100%) rename src/main/{java => scala}/com/ilummc/eagletdl/SplitDownload.java (100%) rename src/main/{java => scala}/com/ilummc/eagletdl/StartEvent.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/ExampleMain.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/TLib.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/annotations/Dependencies.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/annotations/Dependency.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/annotations/Logger.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/annotations/PluginInstance.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/annotations/TConfig.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/annotations/TLocalePlugin.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/annotations/clr/CommandHandler.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/annotations/clr/CommandHandlers.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/annotations/clr/Sub.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/annotations/db/Database.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/annotations/db/DatabasePassword.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/annotations/db/DatabaseType.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/annotations/db/DatabaseUrl.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/annotations/db/DatabaseUser.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/annotations/db/SQLTable.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/bean/Property.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/bean/PropertyTypeAdaptor.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/bungee/api/ChatColor.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/bungee/api/ChatMessageType.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/bungee/api/chat/BaseComponent.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/bungee/api/chat/ClickEvent.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/bungee/api/chat/ComponentBuilder.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/bungee/api/chat/HoverEvent.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/bungee/api/chat/TextComponent.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/bungee/api/chat/TranslatableComponent.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/bungee/chat/BaseComponentSerializer.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/bungee/chat/ComponentSerializer.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/bungee/chat/TextComponentSerializer.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/bungee/chat/TranslatableComponentSerializer.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/clr/CommandLineResolver.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/compat/PlaceholderHook.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/config/TLibConfig.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/db/Pool.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/db/TLibDataSource.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/dependency/TDependency.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/dependency/TDependencyLoader.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/filter/TLoggerFilter.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/filter/TLoggerFilterHandler.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/filter/impl/FilterConfiguration.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/filter/impl/FilterExceptionMirror.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/filter/impl/FilterInvalidPluginLoader.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/inject/TConfigInjector.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/inject/TConfigWatcher.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/inject/TDependencyInjector.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/inject/TLoggerManager.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/inject/TPluginManager.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/logger/TLogger.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/nms/ActionBar.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/resources/TLocale.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/resources/TLocaleInstance.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/resources/TLocaleLoader.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/resources/TLocaleSender.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/resources/TLocaleSerialize.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/resources/type/TLocaleActionBar.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/resources/type/TLocaleBook.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/resources/type/TLocaleBossBar.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/resources/type/TLocaleJson.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/resources/type/TLocaleSound.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/resources/type/TLocaleText.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/resources/type/TLocaleTitle.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/util/IO.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/util/Ref.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/util/Strings.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/util/asm/AsmAnalyser.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/util/asm/AsmClassLoader.java (100%) rename src/main/{java => scala}/com/ilummc/tlib/util/asm/AsmClassTransformer.java (100%) rename src/main/scala/com/ilummc/{tlib/scala => tlibscala}/AsyncTask.scala (94%) rename src/main/scala/com/ilummc/{tlib/scala => tlibscala}/Example.scala (94%) rename src/main/scala/com/ilummc/{tlib/scala => tlibscala}/Implicits.scala (87%) rename src/main/scala/com/ilummc/{tlib/scala => tlibscala}/Prelude.scala (98%) rename src/main/scala/com/ilummc/{tlib/scala => tlibscala}/ScalaTaskExecutor.scala (80%) rename src/main/scala/com/ilummc/{tlib/scala => tlibscala}/Task.scala (94%) rename src/main/scala/com/ilummc/{tlib/scala => tlibscala}/runtime/RichLocation.scala (93%) rename src/main/scala/com/ilummc/{tlib/scala => tlibscala}/runtime/RichOfflinePlayer.scala (95%) rename src/main/scala/com/ilummc/{tlib/scala => tlibscala}/runtime/RichPlayer.scala (98%) rename src/main/scala/com/ilummc/{tlib/scala => tlibscala}/runtime/RichVector.scala (93%) rename src/main/{java => scala}/me/skymc/taboolib/Main.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/TabooLib.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/TabooLibDatabase.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/TabooLibLoader.java (97%) rename src/main/{java => scala}/me/skymc/taboolib/anvil/AnvilContainer.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/anvil/AnvilContainerAPI.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/anvil/AnvilContainerGenerator.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/bookformatter/BookAchievement.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/bookformatter/BookFormatter.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/bookformatter/BookReflection.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/bookformatter/action/ClickAction.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/bookformatter/action/HoverAction.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/bookformatter/builder/BookBuilder.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/bookformatter/builder/PageBuilder.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/bookformatter/builder/TextBuilder.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/bstats/Metrics.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/bungee/TabooLibBungee.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/client/LogClient.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/cloud/TCloudCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/cloud/TCloudLoader.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/cloud/expansion/Expansion.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/cloud/expansion/ExpansionType.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/SubCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/SubCommandExecutor.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/TabooLibExecuteCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/TabooLibMainCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/builder/SimpleCommandBuilder.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/builder/type/CompleterCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/builder/type/CompleterTab.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/internal/BaseMainCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/internal/BaseSubCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/internal/TBaseCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/internal/TCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/internal/TCommandHandler.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/internal/plugin/TLibLocale.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/internal/type/CommandArgument.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/internal/type/CommandField.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/internal/type/CommandRegister.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/internal/type/CommandType.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/language/Language2Command.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/locale/TabooLibLocaleCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/plugin/TabooLibPluginCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/taboolib/AttributesCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/taboolib/EnchantCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/taboolib/FlagCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/taboolib/ImportCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/taboolib/InfoCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/taboolib/ItemCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/taboolib/ItemListCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/taboolib/PotionCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/taboolib/SaveCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/taboolib/SlotCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/taboolib/SoundsCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/taboolib/TagDeleteCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/taboolib/TagDisplayCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/taboolib/TagPrefixCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/taboolib/TagSuffixCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/taboolib/VariableGetCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/taboolib/VariableSetCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/taboolib/listener/ListenerItemListCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/commands/taboolib/listener/ListenerSoundsCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/configuration/TConfiguration.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/function/TFunction.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/function/TFunctionLoader.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/inject/TInject.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/inject/TInjectLoader.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/inject/TInjectTask.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/json/TJsonArray.java (97%) rename src/main/{java => scala}/me/skymc/taboolib/common/json/TJsonObject.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/loader/Instantiable.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/loader/InstantiableLoader.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/nms/NMSHandler.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/nms/NMSHandlerImpl.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/packet/TPacketHandler.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/packet/TPacketListener.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/packet/channel/ChannelExecutor.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/packet/channel/InternalChannelExecutor.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/pathfinder/PathfinderCreator.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/pathfinder/PathfinderExecutor.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/pathfinder/SimpleAi.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/pathfinder/SimpleAiSelector.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/pathfinder/internal/InternalPathfinderCreator.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/pathfinder/internal/InternalPathfinderExecutor.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/playercontainer/Container.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/playercontainer/PlayerContainer.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/playercontainer/PlayerContainerLoader.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/schedule/TSchedule.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/schedule/TScheduleData.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/schedule/TScheduleLoader.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/util/SimpleCounter.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/util/SimpleIterator.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/util/SimpleReflection.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/versioncontrol/SimpleClassVisitor.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/versioncontrol/SimpleMethodVisitor.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/common/versioncontrol/SimpleVersionControl.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/damage/DamageUtils.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/database/GlobalDataManager.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/database/PlayerDataManager.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/events/CustomBookOpenEvent.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/events/PlayerJumpEvent.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/events/PlayerLoadedEvent.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/events/TPluginEnableEvent.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/events/TPluginLoadEvent.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/events/itag/AsyncPlayerReceiveNameTagEvent.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/events/itag/PlayerReceiveNameTagEvent.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/exception/PlayerOfflineException.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/exception/PluginNotFoundException.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/fileutils/ConfigUtils.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/fileutils/EncodeUtils.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/fileutils/FileUtils.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/fileutils/TLogs.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/inventory/ItemUtils.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/inventory/builder/ItemBuilder.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/inventory/builder/MenuBuilder.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/inventory/builder/menu/MenuBuilderCallable.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/inventory/builder/menu/MenuBuilderEvent.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/inventory/builder/menu/MenuBuilderHolder.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/inventory/builder/menu/MenuBuilderItem.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/inventory/builder/menu/MenuBuilderListener.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/itagapi/TagDataHandler.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/itagapi/TagPacket.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/itagapi/TagPlayerData.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/itagapi/TagUtils.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/javascript/ScriptHandler.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/json/tellraw/TellrawCreator.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/json/tellraw/TellrawJson.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/json/tellraw/TellrawVersion.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/json/tellraw/internal/AbstractTellraw.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/json/tellraw/internal/InternalTellraw.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/listener/ListenerNetWork.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/listener/ListenerPlayerCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/listener/ListenerPlayerJoinAndQuit.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/listener/ListenerPlayerJump.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/listener/ListenerPlugin.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/listener/TListener.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/listener/TListenerCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/listener/TListenerHandler.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/methods/ReflectionUtils.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/mysql/IColumn.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/mysql/IHost.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/mysql/builder/SQLColumn.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/mysql/builder/SQLColumnOption.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/mysql/builder/SQLColumnType.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/mysql/builder/SQLExecutor.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/mysql/builder/SQLHost.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/mysql/builder/SQLTable.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/mysql/builder/query/RunnableQuery.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/mysql/builder/query/RunnableUpdate.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/mysql/builder/query/TaskResult.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/mysql/builder/query/TaskStatement.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/mysql/hikari/HikariHandler.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/mysql/hikari/MapDataSource.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/mysql/sqlite/SQLiteColumn.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/mysql/sqlite/SQLiteColumnOption.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/mysql/sqlite/SQLiteColumnType.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/mysql/sqlite/SQLiteHost.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/object/WeightCollection.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/particle/EffLib.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/particle/pack/ParticleData.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/particle/pack/ParticlePack.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/particle/pack/ParticleType.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/playerdata/DataUtils.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/plugin/PluginLoadState.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/plugin/PluginLoadStateType.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/plugin/PluginUnloadState.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/plugin/PluginUtils.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/scoreboard/ScoreboardUtil.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/scoreboard/SimpleScoreboard.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/socket/TabooLibClient.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/socket/TabooLibServer.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/socket/TabooLibSettings.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/socket/packet/Packet.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/socket/packet/PacketParser.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/socket/packet/PacketSerializer.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/socket/packet/PacketType.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/socket/packet/PacketValue.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/socket/packet/impl/PacketAlive.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/socket/packet/impl/PacketCommand.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/socket/packet/impl/PacketEmpty.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/socket/packet/impl/PacketHeartbeat.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/socket/packet/impl/PacketJoin.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/socket/packet/impl/PacketMessage.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/socket/packet/impl/PacketQuit.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/socket/server/ClientConnection.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/sound/SoundPack.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/sound/SoundUtils.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/string/ArrayUtils.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/string/Language.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/string/LanguagePack.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/string/LanguageUtils.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/string/PatternUtils.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/string/StringUtils.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/string/VariableFormatter.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/string/language2/Language2.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/string/language2/Language2Format.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/string/language2/Language2Line.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/string/language2/Language2Type.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/string/language2/Language2Value.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/string/language2/value/Language2Action.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/string/language2/value/Language2Book.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/string/language2/value/Language2Json.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/string/language2/value/Language2Json2.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/string/language2/value/Language2Sound.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/string/language2/value/Language2Text.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/string/language2/value/Language2Title.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/support/SupportWorldGuard.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/timeutil/TimeFormatter.java (100%) rename src/main/{java => scala}/me/skymc/taboolib/update/UpdateTask.java (100%) diff --git a/.gitignore b/.gitignore index c4a2af9..b620d62 100644 --- a/.gitignore +++ b/.gitignore @@ -19,7 +19,8 @@ # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* -.gradle/4.3.1/ +.gradle .idea target -TabooLib.iml \ No newline at end of file +TabooLib.iml +build \ No newline at end of file diff --git a/TabooLib.iml b/TabooLib.iml deleted file mode 100644 index 6b0e5b3..0000000 --- a/TabooLib.iml +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..600dfad --- /dev/null +++ b/build.gradle @@ -0,0 +1,45 @@ +plugins { + id 'java' + id 'scala' + id 'idea' + id 'com.github.johnrengelman.shadow' version '4.0.4' +} + +group = 'me.skymc' +version = '4.73' + +sourceCompatibility = 1.8 +targetCompatibility = 1.8 + +defaultTasks 'build', 'shadowJar' + +tasks.withType(ScalaCompile) { + options.encoding = 'UTF-8' + scalaCompileOptions.encoding = 'UTF-8' +} + +repositories { + mavenCentral() + maven { url "http://repo.extendedclip.com/content/repositories/placeholderapi/" } +} + +dependencies { + shadow(group: 'org.apache.cassandra', name: 'cassandra-all', version: '0.8.1') { + exclude(module: 'slf4j-log4j12') + exclude(module: 'log4j') + } + compile group: 'com.google.code.gson', name: 'gson', version: '2.7' + shadow group: 'com.zaxxer', name: 'HikariCP', version: '3.1.0' + shadow group: 'org.javalite', name: 'activejdbc', version: '2.0' + shadow group: 'com.h2database', name: 'h2', version: '1.4.197' + compile group: 'org.ow2.asm', name: 'asm', version: '6.1.1' + shadow group: 'me.clip', name: 'placeholderapi', version: '2.8.4' + shadow group: 'net.objecthunter', name: 'exp4j', version: '0.4.8' + shadow group: 'org.scala-lang', name: 'scala-library', version: '2.12.8' + shadow fileTree(dir: 'libs', includes: ['*.jar']) +} + +shadowJar { + // 免得 MANIFEST.MF 里面刷一堆 lib 难看 + taskActions.removeIf { it.actionClassName.contains 'configureShadowTask' } +} \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..6b6ea3ab4ff4f69d55c5fd9c0a6ac70f47d41008 GIT binary patch literal 54731 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�A``0fKpc0WAU$bg;D1GyIQa;7hdW#MKpuc+fPkN63DB8-QCon}w55{+ zK*~kT%+g5EzyQD?t7onEf4S{n5`Y%HU(o_IxB{TT|7ske_`f6&x7P#Y(^Lk?K1$eF z8Ohk#SUB1Kx@itd&0`AyGX5-pngUK={i!e#{R8yBlYsrOyWkeC%j+RF5iuzNd@qNfB>rpz#I8f@s{`{nv9Lfe|_68v(EoSLz4a_*l*>a ze`!-MGn)To!IAynEWd7smziIGVoE6e67%Kc<1cw&U)K0#-o>Bj6zac3|F@C;A`9b7 z=$C2lenNw4{S)+GliV}2G}0N|fG z)sG;wmk+am&9E z{i*){Mdkk`{7ZrQpYTT3{{;VHviuVEr7rtV*j}4|g8j3f;U(rv3E-cYWBU$VtD_%M1M5Tztu!v61)^^{7FFK`5OfPAl>+q z>7}IGPbO2}-(dPJfwz~OFNL~(a)Jl^2IoJ?cDeQ`pGlj`8S@I)6PGc(f|02zx2HPq$%$HzbV~+ v^TYh7&j0bc{Ml*p!|U?1+ylV=n-AuVG#FqV^dowa3FsZ*6oN|6kH7vOrq \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..f955316 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/pom.xml b/pom.xml deleted file mode 100644 index 4af742a..0000000 --- a/pom.xml +++ /dev/null @@ -1,263 +0,0 @@ - - - 4.0.0 - - me.skymc - TabooLib - 4.73 - - - UTF-8 - - - clean install package - - - src/main/resources - true - - - src/main/java - - - org.apache.maven.plugins - maven-dependency-plugin - - - org.apache.maven.plugins - maven-compiler-plugin - 3.7.0 - - 1.8 - 1.8 - false - true - - - - org.apache.maven.plugins - maven-resources-plugin - 3.0.1 - - UTF-8 - false - - jar - - - - - net.alchim31.maven - scala-maven-plugin - 3.4.2 - - - - - - - - - - - org.apache.maven.plugins - maven-jar-plugin - - - - me.skymc.taboolib.socket.TabooLibServer - - - - - - org.apache.maven.plugins - maven-shade-plugin - 3.0.0 - - - package - - shade - - - - - com.ilummc.eagletdl - org.ow2.asm - com.google.code.gson - net.objecthunter - - - false - - - - - - - - - placeholderapi - http://repo.extendedclip.com/content/repositories/placeholderapi/ - - - - - org.apache.cassandra - cassandra-all - 0.8.1 - - - org.slf4j - slf4j-log4j12 - - - log4j - log4j - - - - - com.google.code.gson - gson - 2.7 - - - com.zaxxer - HikariCP - 3.1.0 - - - org.javalite - activejdbc - 2.0 - - - com.h2database - h2 - 1.4.197 - - - org.ow2.asm - asm - 6.1.1 - - - me.clip - placeholderapi - 2.8.4 - - - org.scala-lang - scala-library - 2.12.7 - - - net.objecthunter - exp4j - 0.4.8 - - - bukkit - bukkit1_12 - 1 - system - ${basedir}/libs/1_12_R1.jar - - - bukkit - bukkit1_8 - 1 - system - ${basedir}/libs/1_8_R3.jar - - - bungeecord - bungeecord - 1 - system - ${basedir}/libs/BungeeCord.jar - - - com.sun.tools - jshell - 1 - system - ${basedir}/libs/com.sun.tools.jar - - - taboocode - taboocode - 1 - system - ${basedir}/libs/TabooCode5.jar - - - yum - yum - 1 - system - ${basedir}/libs/Yum.jar - - - plib - plib - 1 - system - ${basedir}/libs/ProtocolLib.jar - - - wg - wg - 1 - system - ${basedir}/libs/WorldGuard.jar - - - sk - sk - 1 - system - ${basedir}/libs/Skript.jar - - - vault - vault - 1 - system - ${basedir}/libs/Vault.jar - - - bossbar - bossbar - 1 - system - ${basedir}/libs/BossBarAPI.jar - - - viaversion - viaversion - 1 - system - ${basedir}/libs/ViaVersion.jar - - - protocolsupport - protocolsupport - 1 - system - ${basedir}/libs/ProtocolSupport.jar - - - deprecated - deprecated - 1 - system - ${basedir}/libs/TabooLibDeprecated.jar - - - - \ No newline at end of file diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..5b6e6b0 --- /dev/null +++ b/settings.gradle @@ -0,0 +1 @@ +rootProject.name = 'TabooLib' diff --git a/src/main/java/org/javalite/activejdbc/MetaModel.java b/src/main/java/org/javalite/activejdbc/MetaModel.java deleted file mode 100644 index 55657bf..0000000 --- a/src/main/java/org/javalite/activejdbc/MetaModel.java +++ /dev/null @@ -1,514 +0,0 @@ -/* -Copyright 2009-2018 Igor Polevoy - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - -http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. -*/ -package org.javalite.activejdbc; - -import org.bukkit.plugin.Plugin; -import org.javalite.activejdbc.annotations.*; -import org.javalite.activejdbc.associations.Many2ManyAssociation; -import org.javalite.activejdbc.associations.OneToManyAssociation; -import org.javalite.activejdbc.associations.OneToManyPolymorphicAssociation; -import org.javalite.activejdbc.dialects.Dialect; -import org.javalite.activejdbc.logging.LogFilter; -import org.javalite.activejdbc.logging.LogLevel; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.Serializable; -import java.lang.reflect.Field; -import java.util.*; -import java.util.Map.Entry; - -import static org.javalite.common.Inflector.singularize; -import static org.javalite.common.Inflector.tableize; - - -public class MetaModel implements Serializable { - private static final Logger LOGGER = LoggerFactory.getLogger(MetaModel.class); - private static final ThreadLocal> shardingTableNamesTL = new ThreadLocal<>(); - private final List associations = new ArrayList<>(); - private final String idName; - private final String[] compositeKeys; - private final String tableName, dbType, dbName; - private final Class modelClass; - private final boolean cached; - private final String idGeneratorCode; - private final String versionColumn; - private Map columnMetadata; - private Set attributeNamesNoId; - private String[] partitionIDs = null; - - protected MetaModel(String dbName, Class modelClass, String dbType) { - this.modelClass = modelClass; - this.idName = findIdName(modelClass); - this.compositeKeys = findCompositeKeys(modelClass); - this.tableName = findTableName(modelClass); - this.dbType = dbType; - this.cached = isCached(modelClass); - this.dbName = dbName; - this.idGeneratorCode = findIdGeneratorCode(modelClass); - this.versionColumn = findVersionColumn(modelClass); - this.partitionIDs = findPartitionIDs(); - } - - static Map getTableNamesMap() { - if (shardingTableNamesTL.get() == null) { - shardingTableNamesTL.set(new HashMap<>()); - } - return shardingTableNamesTL.get(); - } - - protected static String getDbName(Class modelClass) { - DbName dbNameAnnotation = modelClass.getAnnotation(DbName.class); - return dbNameAnnotation == null ? DB.DEFAULT_NAME : dbNameAnnotation.value(); - } - - private String[] findPartitionIDs() { - PartitionIDs partitionIDs = modelClass.getAnnotation(PartitionIDs.class); - return partitionIDs != null ? partitionIDs.value() : null; - } - - public boolean hasPartitionIDs() { - return partitionIDs != null; - } - - public String[] getPartitionIDs() { - return partitionIDs; - } - - /** - *

- * This feature is for sharding! - *
- * Do not use it to set table names willy-nilly! - *

- * - *

- * Sets a table name for this model. The table name is attached to a current thread and will remain there - * until it is set with a different value or cleared with {@link #clearShardTableName()} method. - * Table name set with this method overrides a table name naturally mapped to this model. - *

- *

- * Method {@link #getTableName()} will return this value for all operations related to this table. - *

- * - * @param tableName name of a table this model will read from current thread. - */ - public void setShardTableName(String tableName) { - getTableNamesMap().put(modelClass, tableName); - } - - /** - * Clears sharding name of table attached to current thread. - * The name was supposedly attached by the {@link #setShardTableName(String)} - * method. After execution of this class, the method {@link #getTableName()} will be - * returning the value this {@link MetaModel} was initialized with during teh bootstrap phase. - */ - public void clearShardTableName() { - getTableNamesMap().remove(modelClass); - } - - private boolean isCached(Class modelClass) { - return null != modelClass.getAnnotation(Cached.class); - } - - private String findIdName(Class modelClass) { - IdName idNameAnnotation = modelClass.getAnnotation(IdName.class); - return idNameAnnotation == null ? "id" : idNameAnnotation.value(); - } - - private String[] findCompositeKeys(Class modelClass) { - CompositePK compositeKeysAnnotation = modelClass.getAnnotation(CompositePK.class); - return compositeKeysAnnotation == null ? null : compositeKeysAnnotation.value(); - } - - /** - * Table name with plugin name prefix - * - * @return table name - */ - private String findTableName(Class modelClass) { - Table tableAnnotation = modelClass.getAnnotation(Table.class); - String prefix = ""; - try { - Field field = modelClass.getClassLoader().getClass().getDeclaredField("plugin"); - field.setAccessible(true); - Plugin plugin = (Plugin) field.get(modelClass.getClassLoader()); - prefix = tableize(plugin.getName()) + "_"; - } catch (Throwable ignored) { - } - return prefix + (tableAnnotation == null ? tableize(modelClass.getSimpleName()) : tableAnnotation.value()); - } - - private String findIdGeneratorCode(Class modelClass) { - IdGenerator idGenerator = modelClass.getAnnotation(IdGenerator.class); - return idGenerator == null ? null : idGenerator.value(); - } - - private String findVersionColumn(Class modelClass) { - VersionColumn vc = modelClass.getAnnotation(VersionColumn.class); - return vc == null ? "record_version" : vc.value(); - } - - /** - * @return name of the column for optimistic locking record version - */ - public String getVersionColumn() { - return versionColumn; - } - - public String getIdGeneratorCode() { - return idGeneratorCode; - } - - public String getDbName() { - return dbName; - } - - public boolean cached() { - return cached; - } - - public Class getModelClass() { - return modelClass; - } - - /** - * Returns table name currently associated with this model. - * Table name can be modified for sharding using {@link #setShardTableName(String)} - * - * @return table name currently associated with this model. - */ - public String getTableName() { - return getTableNamesMap().getOrDefault(modelClass, tableName); - } - - protected boolean tableExists() { - return columnMetadata != null && columnMetadata.isEmpty(); - } - - - /** - * Finds all attribute names except for id. - * - * @return all attribute names except for id. - */ - public Set getAttributeNamesSkipId() { - if (attributeNamesNoId == null) {//no one cares about unfortunate multi-threading timing with 2 instances created - //if someone does, use DCL with volatile - Set attributesNames = new CaseInsensitiveSet(getAttributeNames()); - attributesNames.remove(getIdName()); - attributeNamesNoId = attributesNames; - } - return attributeNamesNoId; - } - - /** - * Convenience method. Calls {@link #getAttributeNamesSkipGenerated(boolean)} and passes true as argument. - * - * @return list of all attributes except id, created_at, updated_at and record_version. - */ - public Set getAttributeNamesSkipGenerated() { - return getAttributeNamesSkipGenerated(true); - } - - /** - * Finds all attribute names except managed like id, - * created_at, updated_at and record_version, depending on argument. - * - * @param managed if true, time managed attributes created_at and updated_at will not be included (they are managed automatically). - * If false (not managed) created_at and updated_at will be included in output. - * @return list of all attributes except id, created_at, updated_at and - * record_version, depending on argument. - */ - public Set getAttributeNamesSkipGenerated(boolean managed) { - //TODO: can cache this, but will need a cache for managed=true an another for managed=false - Set attributesNames = new CaseInsensitiveSet(getAttributeNamesSkipId()); - - if (managed) { - attributesNames.remove("created_at"); - attributesNames.remove("updated_at"); - } - - attributesNames.remove(versionColumn); - return attributesNames; - } - - - /** - * Finds all attribute names except those provided as arguments. - * - * @return list of all attributes except those provided as arguments. - */ - public Set getAttributeNamesSkip(String... names) { - Set attributes = new CaseInsensitiveSet(getAttributeNames()); - for (String name : names) { - attributes.remove(name); - } - return attributes; - } - - /** - * Returns true if this model supports optimistic locking, false if not - * - * @return true if this model supports optimistic locking, false if not - */ - public boolean isVersioned() { - return columnMetadata != null && columnMetadata.containsKey(versionColumn); - } - - /** - * Retrieves all attribute names. - * - * @return all attribute names. - */ - protected Set getAttributeNames() { - if (columnMetadata == null || columnMetadata.isEmpty()) { - throw new InitException("Failed to find table: " + getTableName()); - } - return Collections.unmodifiableSet(columnMetadata.keySet()); - } - - public String getIdName() { - return idName; - } - - /** - * Returns optional composite primary key class - * - * @return composite primary key class - */ - public String[] getCompositeKeys() { - return compositeKeys; - } - - /** - * Returns association of this table with the target table. Will return null if there is no association. - * - * @param targetModelClass association of this model and the target model. - * @param associationClass class of association in requested. - * @return association of this table with the target table. Will return null if there is no association with target - * table and specified type. - */ - public A getAssociationForTarget(Class targetModelClass, Class associationClass) { - Association result = null; - for (Association association : associations) { - if (association.getClass().equals(associationClass) && association.getTargetClass().equals(targetModelClass)) { - result = association; - break; - } - } - return (A) result; - } - - - /** - * Returns association of this table with the target table. Will return null if there is no association. - * - * @param targetClass association of this model and the target model. - * @return association of this table with the target table. Will return null if there is no association with target - * table and specified type. - */ - public A getAssociationForTarget(Class targetClass) { - Association result = null; - for (Association association : associations) { - if (association.getTargetClass().equals(targetClass)) { - result = association; - break; - } - } - return (A) result; - } - - - /** - * Returns associations of this table with the target table. It is possible - * to have more than one association to a target table if a target table is the same as source. Usually this - * happens when tree structures are stored in the same table (category has many categories). - * - * @param targetModelClass association of this model and the target model. - * @return list of associations of this table with the target table. Will return empty list if none found. - * table and specified type. - */ - public List getAssociationsForTarget(Class targetModelClass) { - List result = new ArrayList<>(); - - for (Association association : associations) { - if (association.getTargetClass().equals(targetModelClass)) { - result.add(association); - } - } - return result; - } - - protected void addAssociation(Association association) { - if (!associations.contains(association)) { - LogFilter.log(LOGGER, LogLevel.INFO, "Association found: {}", association); - associations.add(association); - } - } - - /** - * returns true if this attribute is present in this meta model. This method i case insensitive. - * - * @param attribute attribute name, case insensitive. - * @return true if this attribute is present in this meta model, false of not. - */ - boolean hasAttribute(String attribute) { - if (columnMetadata != null) { - if (columnMetadata.containsKey(attribute)) { - return true; - } else if (attribute.startsWith("\"") && attribute.endsWith("\"")) { - return columnMetadata.containsKey(attribute.substring(1, attribute.length() - 1)); - } - } - return false; - } - - protected boolean hasAssociation(Class targetClass, Class associationClass) { - for (Association association : associations) { - if (association.getTargetClass().equals(targetClass) && - association.getClass().equals(associationClass)) { - return true; - } - } - return false; - } - - @Override - public String toString() { - final StringBuilder t = new StringBuilder(); - t.append("MetaModel: ").append(tableName).append(", ").append(modelClass).append("\n"); - if (columnMetadata != null) { - for (Entry metadata : columnMetadata.entrySet()) { - t.append(metadata.getValue()).append(", "); - } - } - - return t.toString(); - } - - /** - * FK name is a foreign key name used in relationships as a foreign key column in a child table (table represented by this - * instance is a parent table). - * The FK name is derived using {@link org.javalite.common.Inflector}: It is a singular version of this table name plus "_id". - * - * @return foreign key name used in relationships as a foreign key column in a child table. - */ - public String getFKName() { - return singularize(getTableName()).toLowerCase() + "_id"; - } - - protected List getOneToManyAssociations(List exclusions) { - List one2Manies = new ArrayList<>(); - for (Association association : associations) { - if (association.getClass().equals(OneToManyAssociation.class) && !exclusions.contains(association)) { - one2Manies.add((OneToManyAssociation) association); - } - } - return one2Manies; - } - - protected List getPolymorphicAssociations(List exclusions) { - List one2Manies = new ArrayList<>(); - for (Association association : associations) { - if (association.getClass().equals(OneToManyPolymorphicAssociation.class) && !exclusions.contains(association)) { - one2Manies.add((OneToManyPolymorphicAssociation) association); - } - } - return one2Manies; - } - - protected List getManyToManyAssociations(List excludedAssociations) { - List many2Manies = new ArrayList<>(); - for (Association association : associations) { - if (association.getClass().equals(Many2ManyAssociation.class) && !excludedAssociations.contains(association)) { - many2Manies.add((Many2ManyAssociation) association); - } - } - return many2Manies; - } - - public String getDbType() { - return dbType; - } - - public Dialect getDialect() { - return Registry.instance().getConfiguration().getDialect(this); - } - - protected List getAssociations() { - return Collections.unmodifiableList(associations); - } - - /** - * Checks if this model has a named attribute that has the same name as argument. - *

- * Throws IllegalArgumentException in case it does not find it. - * - * @param attribute name of attribute or association target. - */ - protected void checkAttribute(String attribute) { - if (!hasAttribute(attribute)) { - String sb = "Attribute: '" + attribute + "' is not defined in model: '" + getModelClass() + ". " - + "Available attributes: " + getAttributeNames(); - throw new IllegalArgumentException(sb); - } - } - - /** - * Provides column metadata map, keyed by attribute names. - * Table columns correspond to ActiveJDBC model attributes. - * - * @return Provides column metadata map, keyed by attribute names. - */ - public Map getColumnMetadata() { - if (columnMetadata == null || columnMetadata.isEmpty()) { - throw new InitException("Failed to find table: " + getTableName()); - } - return Collections.unmodifiableMap(columnMetadata); - } - - void setColumnMetadata(Map columnMetadata) { - this.columnMetadata = columnMetadata; - } - - /** - * Checks if there is association to the target model class., - * - * @param targetModelClass class of a model that will be checked for association from current model. - * @return true if any association exists such that the current model is a source and targetModelClass is a target. - */ - public boolean isAssociatedTo(Class targetModelClass) { - - if (targetModelClass == null) { - throw new NullPointerException(); - } - - for (Association association : associations) { - if (association.getTargetClass().equals(targetModelClass)) { - return true; - } - } - return false; - } - - public void removeAssociationForTarget(Class modelClass) { - Association association = getAssociationForTarget(modelClass); - if (association != null) { - associations.remove(association); - } - } -} diff --git a/src/main/resources/Addons/TabooLibDeprecated.jar b/src/main/resources/Addons/TabooLibDeprecated similarity index 100% rename from src/main/resources/Addons/TabooLibDeprecated.jar rename to src/main/resources/Addons/TabooLibDeprecated diff --git a/src/main/java/com/ilummc/eagletdl/AlreadyStartException.java b/src/main/scala/com/ilummc/eagletdl/AlreadyStartException.java similarity index 100% rename from src/main/java/com/ilummc/eagletdl/AlreadyStartException.java rename to src/main/scala/com/ilummc/eagletdl/AlreadyStartException.java diff --git a/src/main/java/com/ilummc/eagletdl/CompleteEvent.java b/src/main/scala/com/ilummc/eagletdl/CompleteEvent.java similarity index 100% rename from src/main/java/com/ilummc/eagletdl/CompleteEvent.java rename to src/main/scala/com/ilummc/eagletdl/CompleteEvent.java diff --git a/src/main/java/com/ilummc/eagletdl/ConnectedEvent.java b/src/main/scala/com/ilummc/eagletdl/ConnectedEvent.java similarity index 100% rename from src/main/java/com/ilummc/eagletdl/ConnectedEvent.java rename to src/main/scala/com/ilummc/eagletdl/ConnectedEvent.java diff --git a/src/main/java/com/ilummc/eagletdl/DoNotSupportMultipleThreadException.java b/src/main/scala/com/ilummc/eagletdl/DoNotSupportMultipleThreadException.java similarity index 100% rename from src/main/java/com/ilummc/eagletdl/DoNotSupportMultipleThreadException.java rename to src/main/scala/com/ilummc/eagletdl/DoNotSupportMultipleThreadException.java diff --git a/src/main/java/com/ilummc/eagletdl/EagletHandler.java b/src/main/scala/com/ilummc/eagletdl/EagletHandler.java similarity index 100% rename from src/main/java/com/ilummc/eagletdl/EagletHandler.java rename to src/main/scala/com/ilummc/eagletdl/EagletHandler.java diff --git a/src/main/java/com/ilummc/eagletdl/EagletTask.java b/src/main/scala/com/ilummc/eagletdl/EagletTask.java similarity index 100% rename from src/main/java/com/ilummc/eagletdl/EagletTask.java rename to src/main/scala/com/ilummc/eagletdl/EagletTask.java diff --git a/src/main/java/com/ilummc/eagletdl/ErrorEvent.java b/src/main/scala/com/ilummc/eagletdl/ErrorEvent.java similarity index 100% rename from src/main/java/com/ilummc/eagletdl/ErrorEvent.java rename to src/main/scala/com/ilummc/eagletdl/ErrorEvent.java diff --git a/src/main/java/com/ilummc/eagletdl/HashNotMatchException.java b/src/main/scala/com/ilummc/eagletdl/HashNotMatchException.java similarity index 100% rename from src/main/java/com/ilummc/eagletdl/HashNotMatchException.java rename to src/main/scala/com/ilummc/eagletdl/HashNotMatchException.java diff --git a/src/main/java/com/ilummc/eagletdl/HashUtil.java b/src/main/scala/com/ilummc/eagletdl/HashUtil.java similarity index 100% rename from src/main/java/com/ilummc/eagletdl/HashUtil.java rename to src/main/scala/com/ilummc/eagletdl/HashUtil.java diff --git a/src/main/java/com/ilummc/eagletdl/ProgressEvent.java b/src/main/scala/com/ilummc/eagletdl/ProgressEvent.java similarity index 100% rename from src/main/java/com/ilummc/eagletdl/ProgressEvent.java rename to src/main/scala/com/ilummc/eagletdl/ProgressEvent.java diff --git a/src/main/java/com/ilummc/eagletdl/RetryFailedException.java b/src/main/scala/com/ilummc/eagletdl/RetryFailedException.java similarity index 100% rename from src/main/java/com/ilummc/eagletdl/RetryFailedException.java rename to src/main/scala/com/ilummc/eagletdl/RetryFailedException.java diff --git a/src/main/java/com/ilummc/eagletdl/SingleThreadDownload.java b/src/main/scala/com/ilummc/eagletdl/SingleThreadDownload.java similarity index 100% rename from src/main/java/com/ilummc/eagletdl/SingleThreadDownload.java rename to src/main/scala/com/ilummc/eagletdl/SingleThreadDownload.java diff --git a/src/main/java/com/ilummc/eagletdl/SplitDownload.java b/src/main/scala/com/ilummc/eagletdl/SplitDownload.java similarity index 100% rename from src/main/java/com/ilummc/eagletdl/SplitDownload.java rename to src/main/scala/com/ilummc/eagletdl/SplitDownload.java diff --git a/src/main/java/com/ilummc/eagletdl/StartEvent.java b/src/main/scala/com/ilummc/eagletdl/StartEvent.java similarity index 100% rename from src/main/java/com/ilummc/eagletdl/StartEvent.java rename to src/main/scala/com/ilummc/eagletdl/StartEvent.java diff --git a/src/main/java/com/ilummc/tlib/ExampleMain.java b/src/main/scala/com/ilummc/tlib/ExampleMain.java similarity index 100% rename from src/main/java/com/ilummc/tlib/ExampleMain.java rename to src/main/scala/com/ilummc/tlib/ExampleMain.java diff --git a/src/main/java/com/ilummc/tlib/TLib.java b/src/main/scala/com/ilummc/tlib/TLib.java similarity index 100% rename from src/main/java/com/ilummc/tlib/TLib.java rename to src/main/scala/com/ilummc/tlib/TLib.java diff --git a/src/main/java/com/ilummc/tlib/annotations/Dependencies.java b/src/main/scala/com/ilummc/tlib/annotations/Dependencies.java similarity index 100% rename from src/main/java/com/ilummc/tlib/annotations/Dependencies.java rename to src/main/scala/com/ilummc/tlib/annotations/Dependencies.java diff --git a/src/main/java/com/ilummc/tlib/annotations/Dependency.java b/src/main/scala/com/ilummc/tlib/annotations/Dependency.java similarity index 100% rename from src/main/java/com/ilummc/tlib/annotations/Dependency.java rename to src/main/scala/com/ilummc/tlib/annotations/Dependency.java diff --git a/src/main/java/com/ilummc/tlib/annotations/Logger.java b/src/main/scala/com/ilummc/tlib/annotations/Logger.java similarity index 100% rename from src/main/java/com/ilummc/tlib/annotations/Logger.java rename to src/main/scala/com/ilummc/tlib/annotations/Logger.java diff --git a/src/main/java/com/ilummc/tlib/annotations/PluginInstance.java b/src/main/scala/com/ilummc/tlib/annotations/PluginInstance.java similarity index 100% rename from src/main/java/com/ilummc/tlib/annotations/PluginInstance.java rename to src/main/scala/com/ilummc/tlib/annotations/PluginInstance.java diff --git a/src/main/java/com/ilummc/tlib/annotations/TConfig.java b/src/main/scala/com/ilummc/tlib/annotations/TConfig.java similarity index 100% rename from src/main/java/com/ilummc/tlib/annotations/TConfig.java rename to src/main/scala/com/ilummc/tlib/annotations/TConfig.java diff --git a/src/main/java/com/ilummc/tlib/annotations/TLocalePlugin.java b/src/main/scala/com/ilummc/tlib/annotations/TLocalePlugin.java similarity index 100% rename from src/main/java/com/ilummc/tlib/annotations/TLocalePlugin.java rename to src/main/scala/com/ilummc/tlib/annotations/TLocalePlugin.java diff --git a/src/main/java/com/ilummc/tlib/annotations/clr/CommandHandler.java b/src/main/scala/com/ilummc/tlib/annotations/clr/CommandHandler.java similarity index 100% rename from src/main/java/com/ilummc/tlib/annotations/clr/CommandHandler.java rename to src/main/scala/com/ilummc/tlib/annotations/clr/CommandHandler.java diff --git a/src/main/java/com/ilummc/tlib/annotations/clr/CommandHandlers.java b/src/main/scala/com/ilummc/tlib/annotations/clr/CommandHandlers.java similarity index 100% rename from src/main/java/com/ilummc/tlib/annotations/clr/CommandHandlers.java rename to src/main/scala/com/ilummc/tlib/annotations/clr/CommandHandlers.java diff --git a/src/main/java/com/ilummc/tlib/annotations/clr/Sub.java b/src/main/scala/com/ilummc/tlib/annotations/clr/Sub.java similarity index 100% rename from src/main/java/com/ilummc/tlib/annotations/clr/Sub.java rename to src/main/scala/com/ilummc/tlib/annotations/clr/Sub.java diff --git a/src/main/java/com/ilummc/tlib/annotations/db/Database.java b/src/main/scala/com/ilummc/tlib/annotations/db/Database.java similarity index 100% rename from src/main/java/com/ilummc/tlib/annotations/db/Database.java rename to src/main/scala/com/ilummc/tlib/annotations/db/Database.java diff --git a/src/main/java/com/ilummc/tlib/annotations/db/DatabasePassword.java b/src/main/scala/com/ilummc/tlib/annotations/db/DatabasePassword.java similarity index 100% rename from src/main/java/com/ilummc/tlib/annotations/db/DatabasePassword.java rename to src/main/scala/com/ilummc/tlib/annotations/db/DatabasePassword.java diff --git a/src/main/java/com/ilummc/tlib/annotations/db/DatabaseType.java b/src/main/scala/com/ilummc/tlib/annotations/db/DatabaseType.java similarity index 100% rename from src/main/java/com/ilummc/tlib/annotations/db/DatabaseType.java rename to src/main/scala/com/ilummc/tlib/annotations/db/DatabaseType.java diff --git a/src/main/java/com/ilummc/tlib/annotations/db/DatabaseUrl.java b/src/main/scala/com/ilummc/tlib/annotations/db/DatabaseUrl.java similarity index 100% rename from src/main/java/com/ilummc/tlib/annotations/db/DatabaseUrl.java rename to src/main/scala/com/ilummc/tlib/annotations/db/DatabaseUrl.java diff --git a/src/main/java/com/ilummc/tlib/annotations/db/DatabaseUser.java b/src/main/scala/com/ilummc/tlib/annotations/db/DatabaseUser.java similarity index 100% rename from src/main/java/com/ilummc/tlib/annotations/db/DatabaseUser.java rename to src/main/scala/com/ilummc/tlib/annotations/db/DatabaseUser.java diff --git a/src/main/java/com/ilummc/tlib/annotations/db/SQLTable.java b/src/main/scala/com/ilummc/tlib/annotations/db/SQLTable.java similarity index 100% rename from src/main/java/com/ilummc/tlib/annotations/db/SQLTable.java rename to src/main/scala/com/ilummc/tlib/annotations/db/SQLTable.java diff --git a/src/main/java/com/ilummc/tlib/bean/Property.java b/src/main/scala/com/ilummc/tlib/bean/Property.java similarity index 100% rename from src/main/java/com/ilummc/tlib/bean/Property.java rename to src/main/scala/com/ilummc/tlib/bean/Property.java diff --git a/src/main/java/com/ilummc/tlib/bean/PropertyTypeAdaptor.java b/src/main/scala/com/ilummc/tlib/bean/PropertyTypeAdaptor.java similarity index 100% rename from src/main/java/com/ilummc/tlib/bean/PropertyTypeAdaptor.java rename to src/main/scala/com/ilummc/tlib/bean/PropertyTypeAdaptor.java diff --git a/src/main/java/com/ilummc/tlib/bungee/api/ChatColor.java b/src/main/scala/com/ilummc/tlib/bungee/api/ChatColor.java similarity index 100% rename from src/main/java/com/ilummc/tlib/bungee/api/ChatColor.java rename to src/main/scala/com/ilummc/tlib/bungee/api/ChatColor.java diff --git a/src/main/java/com/ilummc/tlib/bungee/api/ChatMessageType.java b/src/main/scala/com/ilummc/tlib/bungee/api/ChatMessageType.java similarity index 100% rename from src/main/java/com/ilummc/tlib/bungee/api/ChatMessageType.java rename to src/main/scala/com/ilummc/tlib/bungee/api/ChatMessageType.java diff --git a/src/main/java/com/ilummc/tlib/bungee/api/chat/BaseComponent.java b/src/main/scala/com/ilummc/tlib/bungee/api/chat/BaseComponent.java similarity index 100% rename from src/main/java/com/ilummc/tlib/bungee/api/chat/BaseComponent.java rename to src/main/scala/com/ilummc/tlib/bungee/api/chat/BaseComponent.java diff --git a/src/main/java/com/ilummc/tlib/bungee/api/chat/ClickEvent.java b/src/main/scala/com/ilummc/tlib/bungee/api/chat/ClickEvent.java similarity index 100% rename from src/main/java/com/ilummc/tlib/bungee/api/chat/ClickEvent.java rename to src/main/scala/com/ilummc/tlib/bungee/api/chat/ClickEvent.java diff --git a/src/main/java/com/ilummc/tlib/bungee/api/chat/ComponentBuilder.java b/src/main/scala/com/ilummc/tlib/bungee/api/chat/ComponentBuilder.java similarity index 100% rename from src/main/java/com/ilummc/tlib/bungee/api/chat/ComponentBuilder.java rename to src/main/scala/com/ilummc/tlib/bungee/api/chat/ComponentBuilder.java diff --git a/src/main/java/com/ilummc/tlib/bungee/api/chat/HoverEvent.java b/src/main/scala/com/ilummc/tlib/bungee/api/chat/HoverEvent.java similarity index 100% rename from src/main/java/com/ilummc/tlib/bungee/api/chat/HoverEvent.java rename to src/main/scala/com/ilummc/tlib/bungee/api/chat/HoverEvent.java diff --git a/src/main/java/com/ilummc/tlib/bungee/api/chat/TextComponent.java b/src/main/scala/com/ilummc/tlib/bungee/api/chat/TextComponent.java similarity index 100% rename from src/main/java/com/ilummc/tlib/bungee/api/chat/TextComponent.java rename to src/main/scala/com/ilummc/tlib/bungee/api/chat/TextComponent.java diff --git a/src/main/java/com/ilummc/tlib/bungee/api/chat/TranslatableComponent.java b/src/main/scala/com/ilummc/tlib/bungee/api/chat/TranslatableComponent.java similarity index 100% rename from src/main/java/com/ilummc/tlib/bungee/api/chat/TranslatableComponent.java rename to src/main/scala/com/ilummc/tlib/bungee/api/chat/TranslatableComponent.java diff --git a/src/main/java/com/ilummc/tlib/bungee/chat/BaseComponentSerializer.java b/src/main/scala/com/ilummc/tlib/bungee/chat/BaseComponentSerializer.java similarity index 100% rename from src/main/java/com/ilummc/tlib/bungee/chat/BaseComponentSerializer.java rename to src/main/scala/com/ilummc/tlib/bungee/chat/BaseComponentSerializer.java diff --git a/src/main/java/com/ilummc/tlib/bungee/chat/ComponentSerializer.java b/src/main/scala/com/ilummc/tlib/bungee/chat/ComponentSerializer.java similarity index 100% rename from src/main/java/com/ilummc/tlib/bungee/chat/ComponentSerializer.java rename to src/main/scala/com/ilummc/tlib/bungee/chat/ComponentSerializer.java diff --git a/src/main/java/com/ilummc/tlib/bungee/chat/TextComponentSerializer.java b/src/main/scala/com/ilummc/tlib/bungee/chat/TextComponentSerializer.java similarity index 100% rename from src/main/java/com/ilummc/tlib/bungee/chat/TextComponentSerializer.java rename to src/main/scala/com/ilummc/tlib/bungee/chat/TextComponentSerializer.java diff --git a/src/main/java/com/ilummc/tlib/bungee/chat/TranslatableComponentSerializer.java b/src/main/scala/com/ilummc/tlib/bungee/chat/TranslatableComponentSerializer.java similarity index 100% rename from src/main/java/com/ilummc/tlib/bungee/chat/TranslatableComponentSerializer.java rename to src/main/scala/com/ilummc/tlib/bungee/chat/TranslatableComponentSerializer.java diff --git a/src/main/java/com/ilummc/tlib/clr/CommandLineResolver.java b/src/main/scala/com/ilummc/tlib/clr/CommandLineResolver.java similarity index 100% rename from src/main/java/com/ilummc/tlib/clr/CommandLineResolver.java rename to src/main/scala/com/ilummc/tlib/clr/CommandLineResolver.java diff --git a/src/main/java/com/ilummc/tlib/compat/PlaceholderHook.java b/src/main/scala/com/ilummc/tlib/compat/PlaceholderHook.java similarity index 100% rename from src/main/java/com/ilummc/tlib/compat/PlaceholderHook.java rename to src/main/scala/com/ilummc/tlib/compat/PlaceholderHook.java diff --git a/src/main/java/com/ilummc/tlib/config/TLibConfig.java b/src/main/scala/com/ilummc/tlib/config/TLibConfig.java similarity index 100% rename from src/main/java/com/ilummc/tlib/config/TLibConfig.java rename to src/main/scala/com/ilummc/tlib/config/TLibConfig.java diff --git a/src/main/java/com/ilummc/tlib/db/Pool.java b/src/main/scala/com/ilummc/tlib/db/Pool.java similarity index 100% rename from src/main/java/com/ilummc/tlib/db/Pool.java rename to src/main/scala/com/ilummc/tlib/db/Pool.java diff --git a/src/main/java/com/ilummc/tlib/db/TLibDataSource.java b/src/main/scala/com/ilummc/tlib/db/TLibDataSource.java similarity index 100% rename from src/main/java/com/ilummc/tlib/db/TLibDataSource.java rename to src/main/scala/com/ilummc/tlib/db/TLibDataSource.java diff --git a/src/main/java/com/ilummc/tlib/dependency/TDependency.java b/src/main/scala/com/ilummc/tlib/dependency/TDependency.java similarity index 100% rename from src/main/java/com/ilummc/tlib/dependency/TDependency.java rename to src/main/scala/com/ilummc/tlib/dependency/TDependency.java diff --git a/src/main/java/com/ilummc/tlib/dependency/TDependencyLoader.java b/src/main/scala/com/ilummc/tlib/dependency/TDependencyLoader.java similarity index 100% rename from src/main/java/com/ilummc/tlib/dependency/TDependencyLoader.java rename to src/main/scala/com/ilummc/tlib/dependency/TDependencyLoader.java diff --git a/src/main/java/com/ilummc/tlib/filter/TLoggerFilter.java b/src/main/scala/com/ilummc/tlib/filter/TLoggerFilter.java similarity index 100% rename from src/main/java/com/ilummc/tlib/filter/TLoggerFilter.java rename to src/main/scala/com/ilummc/tlib/filter/TLoggerFilter.java diff --git a/src/main/java/com/ilummc/tlib/filter/TLoggerFilterHandler.java b/src/main/scala/com/ilummc/tlib/filter/TLoggerFilterHandler.java similarity index 100% rename from src/main/java/com/ilummc/tlib/filter/TLoggerFilterHandler.java rename to src/main/scala/com/ilummc/tlib/filter/TLoggerFilterHandler.java diff --git a/src/main/java/com/ilummc/tlib/filter/impl/FilterConfiguration.java b/src/main/scala/com/ilummc/tlib/filter/impl/FilterConfiguration.java similarity index 100% rename from src/main/java/com/ilummc/tlib/filter/impl/FilterConfiguration.java rename to src/main/scala/com/ilummc/tlib/filter/impl/FilterConfiguration.java diff --git a/src/main/java/com/ilummc/tlib/filter/impl/FilterExceptionMirror.java b/src/main/scala/com/ilummc/tlib/filter/impl/FilterExceptionMirror.java similarity index 100% rename from src/main/java/com/ilummc/tlib/filter/impl/FilterExceptionMirror.java rename to src/main/scala/com/ilummc/tlib/filter/impl/FilterExceptionMirror.java diff --git a/src/main/java/com/ilummc/tlib/filter/impl/FilterInvalidPluginLoader.java b/src/main/scala/com/ilummc/tlib/filter/impl/FilterInvalidPluginLoader.java similarity index 100% rename from src/main/java/com/ilummc/tlib/filter/impl/FilterInvalidPluginLoader.java rename to src/main/scala/com/ilummc/tlib/filter/impl/FilterInvalidPluginLoader.java diff --git a/src/main/java/com/ilummc/tlib/inject/TConfigInjector.java b/src/main/scala/com/ilummc/tlib/inject/TConfigInjector.java similarity index 100% rename from src/main/java/com/ilummc/tlib/inject/TConfigInjector.java rename to src/main/scala/com/ilummc/tlib/inject/TConfigInjector.java diff --git a/src/main/java/com/ilummc/tlib/inject/TConfigWatcher.java b/src/main/scala/com/ilummc/tlib/inject/TConfigWatcher.java similarity index 100% rename from src/main/java/com/ilummc/tlib/inject/TConfigWatcher.java rename to src/main/scala/com/ilummc/tlib/inject/TConfigWatcher.java diff --git a/src/main/java/com/ilummc/tlib/inject/TDependencyInjector.java b/src/main/scala/com/ilummc/tlib/inject/TDependencyInjector.java similarity index 100% rename from src/main/java/com/ilummc/tlib/inject/TDependencyInjector.java rename to src/main/scala/com/ilummc/tlib/inject/TDependencyInjector.java diff --git a/src/main/java/com/ilummc/tlib/inject/TLoggerManager.java b/src/main/scala/com/ilummc/tlib/inject/TLoggerManager.java similarity index 100% rename from src/main/java/com/ilummc/tlib/inject/TLoggerManager.java rename to src/main/scala/com/ilummc/tlib/inject/TLoggerManager.java diff --git a/src/main/java/com/ilummc/tlib/inject/TPluginManager.java b/src/main/scala/com/ilummc/tlib/inject/TPluginManager.java similarity index 100% rename from src/main/java/com/ilummc/tlib/inject/TPluginManager.java rename to src/main/scala/com/ilummc/tlib/inject/TPluginManager.java diff --git a/src/main/java/com/ilummc/tlib/logger/TLogger.java b/src/main/scala/com/ilummc/tlib/logger/TLogger.java similarity index 100% rename from src/main/java/com/ilummc/tlib/logger/TLogger.java rename to src/main/scala/com/ilummc/tlib/logger/TLogger.java diff --git a/src/main/java/com/ilummc/tlib/nms/ActionBar.java b/src/main/scala/com/ilummc/tlib/nms/ActionBar.java similarity index 100% rename from src/main/java/com/ilummc/tlib/nms/ActionBar.java rename to src/main/scala/com/ilummc/tlib/nms/ActionBar.java diff --git a/src/main/java/com/ilummc/tlib/resources/TLocale.java b/src/main/scala/com/ilummc/tlib/resources/TLocale.java similarity index 100% rename from src/main/java/com/ilummc/tlib/resources/TLocale.java rename to src/main/scala/com/ilummc/tlib/resources/TLocale.java diff --git a/src/main/java/com/ilummc/tlib/resources/TLocaleInstance.java b/src/main/scala/com/ilummc/tlib/resources/TLocaleInstance.java similarity index 100% rename from src/main/java/com/ilummc/tlib/resources/TLocaleInstance.java rename to src/main/scala/com/ilummc/tlib/resources/TLocaleInstance.java diff --git a/src/main/java/com/ilummc/tlib/resources/TLocaleLoader.java b/src/main/scala/com/ilummc/tlib/resources/TLocaleLoader.java similarity index 100% rename from src/main/java/com/ilummc/tlib/resources/TLocaleLoader.java rename to src/main/scala/com/ilummc/tlib/resources/TLocaleLoader.java diff --git a/src/main/java/com/ilummc/tlib/resources/TLocaleSender.java b/src/main/scala/com/ilummc/tlib/resources/TLocaleSender.java similarity index 100% rename from src/main/java/com/ilummc/tlib/resources/TLocaleSender.java rename to src/main/scala/com/ilummc/tlib/resources/TLocaleSender.java diff --git a/src/main/java/com/ilummc/tlib/resources/TLocaleSerialize.java b/src/main/scala/com/ilummc/tlib/resources/TLocaleSerialize.java similarity index 100% rename from src/main/java/com/ilummc/tlib/resources/TLocaleSerialize.java rename to src/main/scala/com/ilummc/tlib/resources/TLocaleSerialize.java diff --git a/src/main/java/com/ilummc/tlib/resources/type/TLocaleActionBar.java b/src/main/scala/com/ilummc/tlib/resources/type/TLocaleActionBar.java similarity index 100% rename from src/main/java/com/ilummc/tlib/resources/type/TLocaleActionBar.java rename to src/main/scala/com/ilummc/tlib/resources/type/TLocaleActionBar.java diff --git a/src/main/java/com/ilummc/tlib/resources/type/TLocaleBook.java b/src/main/scala/com/ilummc/tlib/resources/type/TLocaleBook.java similarity index 100% rename from src/main/java/com/ilummc/tlib/resources/type/TLocaleBook.java rename to src/main/scala/com/ilummc/tlib/resources/type/TLocaleBook.java diff --git a/src/main/java/com/ilummc/tlib/resources/type/TLocaleBossBar.java b/src/main/scala/com/ilummc/tlib/resources/type/TLocaleBossBar.java similarity index 100% rename from src/main/java/com/ilummc/tlib/resources/type/TLocaleBossBar.java rename to src/main/scala/com/ilummc/tlib/resources/type/TLocaleBossBar.java diff --git a/src/main/java/com/ilummc/tlib/resources/type/TLocaleJson.java b/src/main/scala/com/ilummc/tlib/resources/type/TLocaleJson.java similarity index 100% rename from src/main/java/com/ilummc/tlib/resources/type/TLocaleJson.java rename to src/main/scala/com/ilummc/tlib/resources/type/TLocaleJson.java diff --git a/src/main/java/com/ilummc/tlib/resources/type/TLocaleSound.java b/src/main/scala/com/ilummc/tlib/resources/type/TLocaleSound.java similarity index 100% rename from src/main/java/com/ilummc/tlib/resources/type/TLocaleSound.java rename to src/main/scala/com/ilummc/tlib/resources/type/TLocaleSound.java diff --git a/src/main/java/com/ilummc/tlib/resources/type/TLocaleText.java b/src/main/scala/com/ilummc/tlib/resources/type/TLocaleText.java similarity index 100% rename from src/main/java/com/ilummc/tlib/resources/type/TLocaleText.java rename to src/main/scala/com/ilummc/tlib/resources/type/TLocaleText.java diff --git a/src/main/java/com/ilummc/tlib/resources/type/TLocaleTitle.java b/src/main/scala/com/ilummc/tlib/resources/type/TLocaleTitle.java similarity index 100% rename from src/main/java/com/ilummc/tlib/resources/type/TLocaleTitle.java rename to src/main/scala/com/ilummc/tlib/resources/type/TLocaleTitle.java diff --git a/src/main/java/com/ilummc/tlib/util/IO.java b/src/main/scala/com/ilummc/tlib/util/IO.java similarity index 100% rename from src/main/java/com/ilummc/tlib/util/IO.java rename to src/main/scala/com/ilummc/tlib/util/IO.java diff --git a/src/main/java/com/ilummc/tlib/util/Ref.java b/src/main/scala/com/ilummc/tlib/util/Ref.java similarity index 100% rename from src/main/java/com/ilummc/tlib/util/Ref.java rename to src/main/scala/com/ilummc/tlib/util/Ref.java diff --git a/src/main/java/com/ilummc/tlib/util/Strings.java b/src/main/scala/com/ilummc/tlib/util/Strings.java similarity index 100% rename from src/main/java/com/ilummc/tlib/util/Strings.java rename to src/main/scala/com/ilummc/tlib/util/Strings.java diff --git a/src/main/java/com/ilummc/tlib/util/asm/AsmAnalyser.java b/src/main/scala/com/ilummc/tlib/util/asm/AsmAnalyser.java similarity index 100% rename from src/main/java/com/ilummc/tlib/util/asm/AsmAnalyser.java rename to src/main/scala/com/ilummc/tlib/util/asm/AsmAnalyser.java diff --git a/src/main/java/com/ilummc/tlib/util/asm/AsmClassLoader.java b/src/main/scala/com/ilummc/tlib/util/asm/AsmClassLoader.java similarity index 100% rename from src/main/java/com/ilummc/tlib/util/asm/AsmClassLoader.java rename to src/main/scala/com/ilummc/tlib/util/asm/AsmClassLoader.java diff --git a/src/main/java/com/ilummc/tlib/util/asm/AsmClassTransformer.java b/src/main/scala/com/ilummc/tlib/util/asm/AsmClassTransformer.java similarity index 100% rename from src/main/java/com/ilummc/tlib/util/asm/AsmClassTransformer.java rename to src/main/scala/com/ilummc/tlib/util/asm/AsmClassTransformer.java diff --git a/src/main/scala/com/ilummc/tlib/scala/AsyncTask.scala b/src/main/scala/com/ilummc/tlibscala/AsyncTask.scala similarity index 94% rename from src/main/scala/com/ilummc/tlib/scala/AsyncTask.scala rename to src/main/scala/com/ilummc/tlibscala/AsyncTask.scala index c5706ed..274372d 100644 --- a/src/main/scala/com/ilummc/tlib/scala/AsyncTask.scala +++ b/src/main/scala/com/ilummc/tlibscala/AsyncTask.scala @@ -1,4 +1,4 @@ -package com.ilummc.tlib.scala +package com.ilummc.tlibscala import org.bukkit.plugin.Plugin diff --git a/src/main/scala/com/ilummc/tlib/scala/Example.scala b/src/main/scala/com/ilummc/tlibscala/Example.scala similarity index 94% rename from src/main/scala/com/ilummc/tlib/scala/Example.scala rename to src/main/scala/com/ilummc/tlibscala/Example.scala index d779b47..2453916 100644 --- a/src/main/scala/com/ilummc/tlib/scala/Example.scala +++ b/src/main/scala/com/ilummc/tlibscala/Example.scala @@ -1,6 +1,6 @@ -package com.ilummc.tlib.scala +package com.ilummc.tlibscala -import com.ilummc.tlib.scala.Prelude._ +import Prelude._ import org.bukkit.Material import org.bukkit.event.player.PlayerJoinEvent import org.bukkit.event.{EventHandler, Listener} diff --git a/src/main/scala/com/ilummc/tlib/scala/Implicits.scala b/src/main/scala/com/ilummc/tlibscala/Implicits.scala similarity index 87% rename from src/main/scala/com/ilummc/tlib/scala/Implicits.scala rename to src/main/scala/com/ilummc/tlibscala/Implicits.scala index b1a0e8e..9ed88a5 100644 --- a/src/main/scala/com/ilummc/tlib/scala/Implicits.scala +++ b/src/main/scala/com/ilummc/tlibscala/Implicits.scala @@ -1,6 +1,6 @@ -package com.ilummc.tlib.scala +package com.ilummc.tlibscala -import com.ilummc.tlib.scala.runtime.{RichLocation, RichOfflinePlayer, RichPlayer, RichVector} +import com.ilummc.tlibscala.runtime.{RichLocation, RichOfflinePlayer, RichPlayer, RichVector} import org.bukkit.entity.Player import org.bukkit.util.Vector import org.bukkit.{Location, OfflinePlayer, World, util} diff --git a/src/main/scala/com/ilummc/tlib/scala/Prelude.scala b/src/main/scala/com/ilummc/tlibscala/Prelude.scala similarity index 98% rename from src/main/scala/com/ilummc/tlib/scala/Prelude.scala rename to src/main/scala/com/ilummc/tlibscala/Prelude.scala index c8e079a..443365a 100644 --- a/src/main/scala/com/ilummc/tlib/scala/Prelude.scala +++ b/src/main/scala/com/ilummc/tlibscala/Prelude.scala @@ -1,4 +1,4 @@ -package com.ilummc.tlib.scala +package com.ilummc.tlibscala import com.ilummc.tlib.resources.TLocale.Logger import org.bukkit.Bukkit diff --git a/src/main/scala/com/ilummc/tlib/scala/ScalaTaskExecutor.scala b/src/main/scala/com/ilummc/tlibscala/ScalaTaskExecutor.scala similarity index 80% rename from src/main/scala/com/ilummc/tlib/scala/ScalaTaskExecutor.scala rename to src/main/scala/com/ilummc/tlibscala/ScalaTaskExecutor.scala index 06a88f3..da1b997 100644 --- a/src/main/scala/com/ilummc/tlib/scala/ScalaTaskExecutor.scala +++ b/src/main/scala/com/ilummc/tlibscala/ScalaTaskExecutor.scala @@ -1,8 +1,8 @@ -package com.ilummc.tlib.scala +package com.ilummc.tlibscala import org.bukkit.scheduler.BukkitRunnable -private[scala] class ScalaTaskExecutor(task: => Any) extends BukkitRunnable { +private[tlibscala] class ScalaTaskExecutor(task: => Any) extends BukkitRunnable { override def run(): Unit = { try task catch { diff --git a/src/main/scala/com/ilummc/tlib/scala/Task.scala b/src/main/scala/com/ilummc/tlibscala/Task.scala similarity index 94% rename from src/main/scala/com/ilummc/tlib/scala/Task.scala rename to src/main/scala/com/ilummc/tlibscala/Task.scala index 0c889fe..267ff07 100644 --- a/src/main/scala/com/ilummc/tlib/scala/Task.scala +++ b/src/main/scala/com/ilummc/tlibscala/Task.scala @@ -1,4 +1,4 @@ -package com.ilummc.tlib.scala +package com.ilummc.tlibscala import org.bukkit.plugin.Plugin diff --git a/src/main/scala/com/ilummc/tlib/scala/runtime/RichLocation.scala b/src/main/scala/com/ilummc/tlibscala/runtime/RichLocation.scala similarity index 93% rename from src/main/scala/com/ilummc/tlib/scala/runtime/RichLocation.scala rename to src/main/scala/com/ilummc/tlibscala/runtime/RichLocation.scala index 18a0ff3..ef8bcf2 100644 --- a/src/main/scala/com/ilummc/tlib/scala/runtime/RichLocation.scala +++ b/src/main/scala/com/ilummc/tlibscala/runtime/RichLocation.scala @@ -1,4 +1,4 @@ -package com.ilummc.tlib.scala.runtime +package com.ilummc.tlibscala.runtime import org.bukkit.Location diff --git a/src/main/scala/com/ilummc/tlib/scala/runtime/RichOfflinePlayer.scala b/src/main/scala/com/ilummc/tlibscala/runtime/RichOfflinePlayer.scala similarity index 95% rename from src/main/scala/com/ilummc/tlib/scala/runtime/RichOfflinePlayer.scala rename to src/main/scala/com/ilummc/tlibscala/runtime/RichOfflinePlayer.scala index 8c1b160..fa3d7f1 100644 --- a/src/main/scala/com/ilummc/tlib/scala/runtime/RichOfflinePlayer.scala +++ b/src/main/scala/com/ilummc/tlibscala/runtime/RichOfflinePlayer.scala @@ -1,4 +1,4 @@ -package com.ilummc.tlib.scala.runtime +package com.ilummc.tlibscala.runtime import me.skymc.taboolib.Main import me.skymc.taboolib.economy.EcoUtils diff --git a/src/main/scala/com/ilummc/tlib/scala/runtime/RichPlayer.scala b/src/main/scala/com/ilummc/tlibscala/runtime/RichPlayer.scala similarity index 98% rename from src/main/scala/com/ilummc/tlib/scala/runtime/RichPlayer.scala rename to src/main/scala/com/ilummc/tlibscala/runtime/RichPlayer.scala index 167059a..213c576 100644 --- a/src/main/scala/com/ilummc/tlib/scala/runtime/RichPlayer.scala +++ b/src/main/scala/com/ilummc/tlibscala/runtime/RichPlayer.scala @@ -1,4 +1,4 @@ -package com.ilummc.tlib.scala.runtime +package com.ilummc.tlibscala.runtime import com.ilummc.tlib.resources.TLocale import me.skymc.taboolib.anvil.AnvilContainerAPI diff --git a/src/main/scala/com/ilummc/tlib/scala/runtime/RichVector.scala b/src/main/scala/com/ilummc/tlibscala/runtime/RichVector.scala similarity index 93% rename from src/main/scala/com/ilummc/tlib/scala/runtime/RichVector.scala rename to src/main/scala/com/ilummc/tlibscala/runtime/RichVector.scala index f12bbd6..557dd3d 100644 --- a/src/main/scala/com/ilummc/tlib/scala/runtime/RichVector.scala +++ b/src/main/scala/com/ilummc/tlibscala/runtime/RichVector.scala @@ -1,4 +1,4 @@ -package com.ilummc.tlib.scala.runtime +package com.ilummc.tlibscala.runtime import org.bukkit.util.Vector diff --git a/src/main/java/me/skymc/taboolib/Main.java b/src/main/scala/me/skymc/taboolib/Main.java similarity index 100% rename from src/main/java/me/skymc/taboolib/Main.java rename to src/main/scala/me/skymc/taboolib/Main.java diff --git a/src/main/java/me/skymc/taboolib/TabooLib.java b/src/main/scala/me/skymc/taboolib/TabooLib.java similarity index 100% rename from src/main/java/me/skymc/taboolib/TabooLib.java rename to src/main/scala/me/skymc/taboolib/TabooLib.java diff --git a/src/main/java/me/skymc/taboolib/TabooLibDatabase.java b/src/main/scala/me/skymc/taboolib/TabooLibDatabase.java similarity index 100% rename from src/main/java/me/skymc/taboolib/TabooLibDatabase.java rename to src/main/scala/me/skymc/taboolib/TabooLibDatabase.java diff --git a/src/main/java/me/skymc/taboolib/TabooLibLoader.java b/src/main/scala/me/skymc/taboolib/TabooLibLoader.java similarity index 97% rename from src/main/java/me/skymc/taboolib/TabooLibLoader.java rename to src/main/scala/me/skymc/taboolib/TabooLibLoader.java index 8ad09da..115cb10 100644 --- a/src/main/java/me/skymc/taboolib/TabooLibLoader.java +++ b/src/main/scala/me/skymc/taboolib/TabooLibLoader.java @@ -159,7 +159,10 @@ public class TabooLibLoader implements Listener { } static void setupAddons() { - TabooLib.instance().saveResource("Addons/TabooLibDeprecated.jar", true); + TabooLib.instance().saveResource("Addons/TabooLibDeprecated", true); + // 傻逼 Gradle 的 shadow 插件会将所有 jar 排除 + // https://github.com/johnrengelman/shadow/issues/276 + new File(TabooLib.instance().getDataFolder(), "Addons/TabooLibDeprecated").renameTo(new File(TabooLib.instance().getDataFolder(), "Addons/TabooLibDeprecated.jar")); File file = new File(TabooLib.instance().getDataFolder(), "Addons"); if (file.exists()) { Arrays.stream(file.listFiles()).forEach(listFile -> TDependencyLoader.addToPath(TabooLib.instance(), listFile)); diff --git a/src/main/java/me/skymc/taboolib/anvil/AnvilContainer.java b/src/main/scala/me/skymc/taboolib/anvil/AnvilContainer.java similarity index 100% rename from src/main/java/me/skymc/taboolib/anvil/AnvilContainer.java rename to src/main/scala/me/skymc/taboolib/anvil/AnvilContainer.java diff --git a/src/main/java/me/skymc/taboolib/anvil/AnvilContainerAPI.java b/src/main/scala/me/skymc/taboolib/anvil/AnvilContainerAPI.java similarity index 100% rename from src/main/java/me/skymc/taboolib/anvil/AnvilContainerAPI.java rename to src/main/scala/me/skymc/taboolib/anvil/AnvilContainerAPI.java diff --git a/src/main/java/me/skymc/taboolib/anvil/AnvilContainerGenerator.java b/src/main/scala/me/skymc/taboolib/anvil/AnvilContainerGenerator.java similarity index 100% rename from src/main/java/me/skymc/taboolib/anvil/AnvilContainerGenerator.java rename to src/main/scala/me/skymc/taboolib/anvil/AnvilContainerGenerator.java diff --git a/src/main/java/me/skymc/taboolib/bookformatter/BookAchievement.java b/src/main/scala/me/skymc/taboolib/bookformatter/BookAchievement.java similarity index 100% rename from src/main/java/me/skymc/taboolib/bookformatter/BookAchievement.java rename to src/main/scala/me/skymc/taboolib/bookformatter/BookAchievement.java diff --git a/src/main/java/me/skymc/taboolib/bookformatter/BookFormatter.java b/src/main/scala/me/skymc/taboolib/bookformatter/BookFormatter.java similarity index 100% rename from src/main/java/me/skymc/taboolib/bookformatter/BookFormatter.java rename to src/main/scala/me/skymc/taboolib/bookformatter/BookFormatter.java diff --git a/src/main/java/me/skymc/taboolib/bookformatter/BookReflection.java b/src/main/scala/me/skymc/taboolib/bookformatter/BookReflection.java similarity index 100% rename from src/main/java/me/skymc/taboolib/bookformatter/BookReflection.java rename to src/main/scala/me/skymc/taboolib/bookformatter/BookReflection.java diff --git a/src/main/java/me/skymc/taboolib/bookformatter/action/ClickAction.java b/src/main/scala/me/skymc/taboolib/bookformatter/action/ClickAction.java similarity index 100% rename from src/main/java/me/skymc/taboolib/bookformatter/action/ClickAction.java rename to src/main/scala/me/skymc/taboolib/bookformatter/action/ClickAction.java diff --git a/src/main/java/me/skymc/taboolib/bookformatter/action/HoverAction.java b/src/main/scala/me/skymc/taboolib/bookformatter/action/HoverAction.java similarity index 100% rename from src/main/java/me/skymc/taboolib/bookformatter/action/HoverAction.java rename to src/main/scala/me/skymc/taboolib/bookformatter/action/HoverAction.java diff --git a/src/main/java/me/skymc/taboolib/bookformatter/builder/BookBuilder.java b/src/main/scala/me/skymc/taboolib/bookformatter/builder/BookBuilder.java similarity index 100% rename from src/main/java/me/skymc/taboolib/bookformatter/builder/BookBuilder.java rename to src/main/scala/me/skymc/taboolib/bookformatter/builder/BookBuilder.java diff --git a/src/main/java/me/skymc/taboolib/bookformatter/builder/PageBuilder.java b/src/main/scala/me/skymc/taboolib/bookformatter/builder/PageBuilder.java similarity index 100% rename from src/main/java/me/skymc/taboolib/bookformatter/builder/PageBuilder.java rename to src/main/scala/me/skymc/taboolib/bookformatter/builder/PageBuilder.java diff --git a/src/main/java/me/skymc/taboolib/bookformatter/builder/TextBuilder.java b/src/main/scala/me/skymc/taboolib/bookformatter/builder/TextBuilder.java similarity index 100% rename from src/main/java/me/skymc/taboolib/bookformatter/builder/TextBuilder.java rename to src/main/scala/me/skymc/taboolib/bookformatter/builder/TextBuilder.java diff --git a/src/main/java/me/skymc/taboolib/bstats/Metrics.java b/src/main/scala/me/skymc/taboolib/bstats/Metrics.java similarity index 100% rename from src/main/java/me/skymc/taboolib/bstats/Metrics.java rename to src/main/scala/me/skymc/taboolib/bstats/Metrics.java diff --git a/src/main/java/me/skymc/taboolib/bungee/TabooLibBungee.java b/src/main/scala/me/skymc/taboolib/bungee/TabooLibBungee.java similarity index 100% rename from src/main/java/me/skymc/taboolib/bungee/TabooLibBungee.java rename to src/main/scala/me/skymc/taboolib/bungee/TabooLibBungee.java diff --git a/src/main/java/me/skymc/taboolib/client/LogClient.java b/src/main/scala/me/skymc/taboolib/client/LogClient.java similarity index 100% rename from src/main/java/me/skymc/taboolib/client/LogClient.java rename to src/main/scala/me/skymc/taboolib/client/LogClient.java diff --git a/src/main/java/me/skymc/taboolib/cloud/TCloudCommand.java b/src/main/scala/me/skymc/taboolib/cloud/TCloudCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/cloud/TCloudCommand.java rename to src/main/scala/me/skymc/taboolib/cloud/TCloudCommand.java diff --git a/src/main/java/me/skymc/taboolib/cloud/TCloudLoader.java b/src/main/scala/me/skymc/taboolib/cloud/TCloudLoader.java similarity index 100% rename from src/main/java/me/skymc/taboolib/cloud/TCloudLoader.java rename to src/main/scala/me/skymc/taboolib/cloud/TCloudLoader.java diff --git a/src/main/java/me/skymc/taboolib/cloud/expansion/Expansion.java b/src/main/scala/me/skymc/taboolib/cloud/expansion/Expansion.java similarity index 100% rename from src/main/java/me/skymc/taboolib/cloud/expansion/Expansion.java rename to src/main/scala/me/skymc/taboolib/cloud/expansion/Expansion.java diff --git a/src/main/java/me/skymc/taboolib/cloud/expansion/ExpansionType.java b/src/main/scala/me/skymc/taboolib/cloud/expansion/ExpansionType.java similarity index 100% rename from src/main/java/me/skymc/taboolib/cloud/expansion/ExpansionType.java rename to src/main/scala/me/skymc/taboolib/cloud/expansion/ExpansionType.java diff --git a/src/main/java/me/skymc/taboolib/commands/SubCommand.java b/src/main/scala/me/skymc/taboolib/commands/SubCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/SubCommand.java rename to src/main/scala/me/skymc/taboolib/commands/SubCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/SubCommandExecutor.java b/src/main/scala/me/skymc/taboolib/commands/SubCommandExecutor.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/SubCommandExecutor.java rename to src/main/scala/me/skymc/taboolib/commands/SubCommandExecutor.java diff --git a/src/main/java/me/skymc/taboolib/commands/TabooLibExecuteCommand.java b/src/main/scala/me/skymc/taboolib/commands/TabooLibExecuteCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/TabooLibExecuteCommand.java rename to src/main/scala/me/skymc/taboolib/commands/TabooLibExecuteCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/TabooLibMainCommand.java b/src/main/scala/me/skymc/taboolib/commands/TabooLibMainCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/TabooLibMainCommand.java rename to src/main/scala/me/skymc/taboolib/commands/TabooLibMainCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/builder/SimpleCommandBuilder.java b/src/main/scala/me/skymc/taboolib/commands/builder/SimpleCommandBuilder.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/builder/SimpleCommandBuilder.java rename to src/main/scala/me/skymc/taboolib/commands/builder/SimpleCommandBuilder.java diff --git a/src/main/java/me/skymc/taboolib/commands/builder/type/CompleterCommand.java b/src/main/scala/me/skymc/taboolib/commands/builder/type/CompleterCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/builder/type/CompleterCommand.java rename to src/main/scala/me/skymc/taboolib/commands/builder/type/CompleterCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/builder/type/CompleterTab.java b/src/main/scala/me/skymc/taboolib/commands/builder/type/CompleterTab.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/builder/type/CompleterTab.java rename to src/main/scala/me/skymc/taboolib/commands/builder/type/CompleterTab.java diff --git a/src/main/java/me/skymc/taboolib/commands/internal/BaseMainCommand.java b/src/main/scala/me/skymc/taboolib/commands/internal/BaseMainCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/internal/BaseMainCommand.java rename to src/main/scala/me/skymc/taboolib/commands/internal/BaseMainCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/internal/BaseSubCommand.java b/src/main/scala/me/skymc/taboolib/commands/internal/BaseSubCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/internal/BaseSubCommand.java rename to src/main/scala/me/skymc/taboolib/commands/internal/BaseSubCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/internal/TBaseCommand.java b/src/main/scala/me/skymc/taboolib/commands/internal/TBaseCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/internal/TBaseCommand.java rename to src/main/scala/me/skymc/taboolib/commands/internal/TBaseCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/internal/TCommand.java b/src/main/scala/me/skymc/taboolib/commands/internal/TCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/internal/TCommand.java rename to src/main/scala/me/skymc/taboolib/commands/internal/TCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/internal/TCommandHandler.java b/src/main/scala/me/skymc/taboolib/commands/internal/TCommandHandler.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/internal/TCommandHandler.java rename to src/main/scala/me/skymc/taboolib/commands/internal/TCommandHandler.java diff --git a/src/main/java/me/skymc/taboolib/commands/internal/plugin/TLibLocale.java b/src/main/scala/me/skymc/taboolib/commands/internal/plugin/TLibLocale.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/internal/plugin/TLibLocale.java rename to src/main/scala/me/skymc/taboolib/commands/internal/plugin/TLibLocale.java diff --git a/src/main/java/me/skymc/taboolib/commands/internal/type/CommandArgument.java b/src/main/scala/me/skymc/taboolib/commands/internal/type/CommandArgument.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/internal/type/CommandArgument.java rename to src/main/scala/me/skymc/taboolib/commands/internal/type/CommandArgument.java diff --git a/src/main/java/me/skymc/taboolib/commands/internal/type/CommandField.java b/src/main/scala/me/skymc/taboolib/commands/internal/type/CommandField.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/internal/type/CommandField.java rename to src/main/scala/me/skymc/taboolib/commands/internal/type/CommandField.java diff --git a/src/main/java/me/skymc/taboolib/commands/internal/type/CommandRegister.java b/src/main/scala/me/skymc/taboolib/commands/internal/type/CommandRegister.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/internal/type/CommandRegister.java rename to src/main/scala/me/skymc/taboolib/commands/internal/type/CommandRegister.java diff --git a/src/main/java/me/skymc/taboolib/commands/internal/type/CommandType.java b/src/main/scala/me/skymc/taboolib/commands/internal/type/CommandType.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/internal/type/CommandType.java rename to src/main/scala/me/skymc/taboolib/commands/internal/type/CommandType.java diff --git a/src/main/java/me/skymc/taboolib/commands/language/Language2Command.java b/src/main/scala/me/skymc/taboolib/commands/language/Language2Command.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/language/Language2Command.java rename to src/main/scala/me/skymc/taboolib/commands/language/Language2Command.java diff --git a/src/main/java/me/skymc/taboolib/commands/locale/TabooLibLocaleCommand.java b/src/main/scala/me/skymc/taboolib/commands/locale/TabooLibLocaleCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/locale/TabooLibLocaleCommand.java rename to src/main/scala/me/skymc/taboolib/commands/locale/TabooLibLocaleCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/plugin/TabooLibPluginCommand.java b/src/main/scala/me/skymc/taboolib/commands/plugin/TabooLibPluginCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/plugin/TabooLibPluginCommand.java rename to src/main/scala/me/skymc/taboolib/commands/plugin/TabooLibPluginCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/taboolib/AttributesCommand.java b/src/main/scala/me/skymc/taboolib/commands/taboolib/AttributesCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/taboolib/AttributesCommand.java rename to src/main/scala/me/skymc/taboolib/commands/taboolib/AttributesCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/taboolib/EnchantCommand.java b/src/main/scala/me/skymc/taboolib/commands/taboolib/EnchantCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/taboolib/EnchantCommand.java rename to src/main/scala/me/skymc/taboolib/commands/taboolib/EnchantCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/taboolib/FlagCommand.java b/src/main/scala/me/skymc/taboolib/commands/taboolib/FlagCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/taboolib/FlagCommand.java rename to src/main/scala/me/skymc/taboolib/commands/taboolib/FlagCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/taboolib/ImportCommand.java b/src/main/scala/me/skymc/taboolib/commands/taboolib/ImportCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/taboolib/ImportCommand.java rename to src/main/scala/me/skymc/taboolib/commands/taboolib/ImportCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/taboolib/InfoCommand.java b/src/main/scala/me/skymc/taboolib/commands/taboolib/InfoCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/taboolib/InfoCommand.java rename to src/main/scala/me/skymc/taboolib/commands/taboolib/InfoCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/taboolib/ItemCommand.java b/src/main/scala/me/skymc/taboolib/commands/taboolib/ItemCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/taboolib/ItemCommand.java rename to src/main/scala/me/skymc/taboolib/commands/taboolib/ItemCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/taboolib/ItemListCommand.java b/src/main/scala/me/skymc/taboolib/commands/taboolib/ItemListCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/taboolib/ItemListCommand.java rename to src/main/scala/me/skymc/taboolib/commands/taboolib/ItemListCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/taboolib/PotionCommand.java b/src/main/scala/me/skymc/taboolib/commands/taboolib/PotionCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/taboolib/PotionCommand.java rename to src/main/scala/me/skymc/taboolib/commands/taboolib/PotionCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/taboolib/SaveCommand.java b/src/main/scala/me/skymc/taboolib/commands/taboolib/SaveCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/taboolib/SaveCommand.java rename to src/main/scala/me/skymc/taboolib/commands/taboolib/SaveCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/taboolib/SlotCommand.java b/src/main/scala/me/skymc/taboolib/commands/taboolib/SlotCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/taboolib/SlotCommand.java rename to src/main/scala/me/skymc/taboolib/commands/taboolib/SlotCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/taboolib/SoundsCommand.java b/src/main/scala/me/skymc/taboolib/commands/taboolib/SoundsCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/taboolib/SoundsCommand.java rename to src/main/scala/me/skymc/taboolib/commands/taboolib/SoundsCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/taboolib/TagDeleteCommand.java b/src/main/scala/me/skymc/taboolib/commands/taboolib/TagDeleteCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/taboolib/TagDeleteCommand.java rename to src/main/scala/me/skymc/taboolib/commands/taboolib/TagDeleteCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/taboolib/TagDisplayCommand.java b/src/main/scala/me/skymc/taboolib/commands/taboolib/TagDisplayCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/taboolib/TagDisplayCommand.java rename to src/main/scala/me/skymc/taboolib/commands/taboolib/TagDisplayCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/taboolib/TagPrefixCommand.java b/src/main/scala/me/skymc/taboolib/commands/taboolib/TagPrefixCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/taboolib/TagPrefixCommand.java rename to src/main/scala/me/skymc/taboolib/commands/taboolib/TagPrefixCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/taboolib/TagSuffixCommand.java b/src/main/scala/me/skymc/taboolib/commands/taboolib/TagSuffixCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/taboolib/TagSuffixCommand.java rename to src/main/scala/me/skymc/taboolib/commands/taboolib/TagSuffixCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/taboolib/VariableGetCommand.java b/src/main/scala/me/skymc/taboolib/commands/taboolib/VariableGetCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/taboolib/VariableGetCommand.java rename to src/main/scala/me/skymc/taboolib/commands/taboolib/VariableGetCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/taboolib/VariableSetCommand.java b/src/main/scala/me/skymc/taboolib/commands/taboolib/VariableSetCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/taboolib/VariableSetCommand.java rename to src/main/scala/me/skymc/taboolib/commands/taboolib/VariableSetCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/taboolib/listener/ListenerItemListCommand.java b/src/main/scala/me/skymc/taboolib/commands/taboolib/listener/ListenerItemListCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/taboolib/listener/ListenerItemListCommand.java rename to src/main/scala/me/skymc/taboolib/commands/taboolib/listener/ListenerItemListCommand.java diff --git a/src/main/java/me/skymc/taboolib/commands/taboolib/listener/ListenerSoundsCommand.java b/src/main/scala/me/skymc/taboolib/commands/taboolib/listener/ListenerSoundsCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/commands/taboolib/listener/ListenerSoundsCommand.java rename to src/main/scala/me/skymc/taboolib/commands/taboolib/listener/ListenerSoundsCommand.java diff --git a/src/main/java/me/skymc/taboolib/common/configuration/TConfiguration.java b/src/main/scala/me/skymc/taboolib/common/configuration/TConfiguration.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/configuration/TConfiguration.java rename to src/main/scala/me/skymc/taboolib/common/configuration/TConfiguration.java diff --git a/src/main/java/me/skymc/taboolib/common/function/TFunction.java b/src/main/scala/me/skymc/taboolib/common/function/TFunction.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/function/TFunction.java rename to src/main/scala/me/skymc/taboolib/common/function/TFunction.java diff --git a/src/main/java/me/skymc/taboolib/common/function/TFunctionLoader.java b/src/main/scala/me/skymc/taboolib/common/function/TFunctionLoader.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/function/TFunctionLoader.java rename to src/main/scala/me/skymc/taboolib/common/function/TFunctionLoader.java diff --git a/src/main/java/me/skymc/taboolib/common/inject/TInject.java b/src/main/scala/me/skymc/taboolib/common/inject/TInject.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/inject/TInject.java rename to src/main/scala/me/skymc/taboolib/common/inject/TInject.java diff --git a/src/main/java/me/skymc/taboolib/common/inject/TInjectLoader.java b/src/main/scala/me/skymc/taboolib/common/inject/TInjectLoader.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/inject/TInjectLoader.java rename to src/main/scala/me/skymc/taboolib/common/inject/TInjectLoader.java diff --git a/src/main/java/me/skymc/taboolib/common/inject/TInjectTask.java b/src/main/scala/me/skymc/taboolib/common/inject/TInjectTask.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/inject/TInjectTask.java rename to src/main/scala/me/skymc/taboolib/common/inject/TInjectTask.java diff --git a/src/main/java/me/skymc/taboolib/common/json/TJsonArray.java b/src/main/scala/me/skymc/taboolib/common/json/TJsonArray.java similarity index 97% rename from src/main/java/me/skymc/taboolib/common/json/TJsonArray.java rename to src/main/scala/me/skymc/taboolib/common/json/TJsonArray.java index f094d7d..f23a63e 100644 --- a/src/main/java/me/skymc/taboolib/common/json/TJsonArray.java +++ b/src/main/scala/me/skymc/taboolib/common/json/TJsonArray.java @@ -59,7 +59,7 @@ public class TJsonArray implements Iterable { * @param obj 成员 */ public void add(Boolean obj) { - jsonArray.add(obj); + jsonArray.add(new JsonPrimitive(obj)); } /** @@ -68,7 +68,7 @@ public class TJsonArray implements Iterable { * @param obj 成员 */ public void add(Character obj) { - jsonArray.add(obj); + jsonArray.add(new JsonPrimitive(obj)); } /** @@ -77,7 +77,7 @@ public class TJsonArray implements Iterable { * @param obj 成员 */ public void add(Number obj) { - jsonArray.add(obj); + jsonArray.add(new JsonPrimitive(obj)); } /** @@ -86,7 +86,7 @@ public class TJsonArray implements Iterable { * @param obj 成员 */ public void add(String obj) { - jsonArray.add(obj); + jsonArray.add(new JsonPrimitive(obj)); } /** diff --git a/src/main/java/me/skymc/taboolib/common/json/TJsonObject.java b/src/main/scala/me/skymc/taboolib/common/json/TJsonObject.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/json/TJsonObject.java rename to src/main/scala/me/skymc/taboolib/common/json/TJsonObject.java diff --git a/src/main/java/me/skymc/taboolib/common/loader/Instantiable.java b/src/main/scala/me/skymc/taboolib/common/loader/Instantiable.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/loader/Instantiable.java rename to src/main/scala/me/skymc/taboolib/common/loader/Instantiable.java diff --git a/src/main/java/me/skymc/taboolib/common/loader/InstantiableLoader.java b/src/main/scala/me/skymc/taboolib/common/loader/InstantiableLoader.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/loader/InstantiableLoader.java rename to src/main/scala/me/skymc/taboolib/common/loader/InstantiableLoader.java diff --git a/src/main/java/me/skymc/taboolib/common/nms/NMSHandler.java b/src/main/scala/me/skymc/taboolib/common/nms/NMSHandler.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/nms/NMSHandler.java rename to src/main/scala/me/skymc/taboolib/common/nms/NMSHandler.java diff --git a/src/main/java/me/skymc/taboolib/common/nms/NMSHandlerImpl.java b/src/main/scala/me/skymc/taboolib/common/nms/NMSHandlerImpl.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/nms/NMSHandlerImpl.java rename to src/main/scala/me/skymc/taboolib/common/nms/NMSHandlerImpl.java diff --git a/src/main/java/me/skymc/taboolib/common/packet/TPacketHandler.java b/src/main/scala/me/skymc/taboolib/common/packet/TPacketHandler.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/packet/TPacketHandler.java rename to src/main/scala/me/skymc/taboolib/common/packet/TPacketHandler.java diff --git a/src/main/java/me/skymc/taboolib/common/packet/TPacketListener.java b/src/main/scala/me/skymc/taboolib/common/packet/TPacketListener.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/packet/TPacketListener.java rename to src/main/scala/me/skymc/taboolib/common/packet/TPacketListener.java diff --git a/src/main/java/me/skymc/taboolib/common/packet/channel/ChannelExecutor.java b/src/main/scala/me/skymc/taboolib/common/packet/channel/ChannelExecutor.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/packet/channel/ChannelExecutor.java rename to src/main/scala/me/skymc/taboolib/common/packet/channel/ChannelExecutor.java diff --git a/src/main/java/me/skymc/taboolib/common/packet/channel/InternalChannelExecutor.java b/src/main/scala/me/skymc/taboolib/common/packet/channel/InternalChannelExecutor.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/packet/channel/InternalChannelExecutor.java rename to src/main/scala/me/skymc/taboolib/common/packet/channel/InternalChannelExecutor.java diff --git a/src/main/java/me/skymc/taboolib/common/pathfinder/PathfinderCreator.java b/src/main/scala/me/skymc/taboolib/common/pathfinder/PathfinderCreator.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/pathfinder/PathfinderCreator.java rename to src/main/scala/me/skymc/taboolib/common/pathfinder/PathfinderCreator.java diff --git a/src/main/java/me/skymc/taboolib/common/pathfinder/PathfinderExecutor.java b/src/main/scala/me/skymc/taboolib/common/pathfinder/PathfinderExecutor.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/pathfinder/PathfinderExecutor.java rename to src/main/scala/me/skymc/taboolib/common/pathfinder/PathfinderExecutor.java diff --git a/src/main/java/me/skymc/taboolib/common/pathfinder/SimpleAi.java b/src/main/scala/me/skymc/taboolib/common/pathfinder/SimpleAi.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/pathfinder/SimpleAi.java rename to src/main/scala/me/skymc/taboolib/common/pathfinder/SimpleAi.java diff --git a/src/main/java/me/skymc/taboolib/common/pathfinder/SimpleAiSelector.java b/src/main/scala/me/skymc/taboolib/common/pathfinder/SimpleAiSelector.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/pathfinder/SimpleAiSelector.java rename to src/main/scala/me/skymc/taboolib/common/pathfinder/SimpleAiSelector.java diff --git a/src/main/java/me/skymc/taboolib/common/pathfinder/internal/InternalPathfinderCreator.java b/src/main/scala/me/skymc/taboolib/common/pathfinder/internal/InternalPathfinderCreator.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/pathfinder/internal/InternalPathfinderCreator.java rename to src/main/scala/me/skymc/taboolib/common/pathfinder/internal/InternalPathfinderCreator.java diff --git a/src/main/java/me/skymc/taboolib/common/pathfinder/internal/InternalPathfinderExecutor.java b/src/main/scala/me/skymc/taboolib/common/pathfinder/internal/InternalPathfinderExecutor.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/pathfinder/internal/InternalPathfinderExecutor.java rename to src/main/scala/me/skymc/taboolib/common/pathfinder/internal/InternalPathfinderExecutor.java diff --git a/src/main/java/me/skymc/taboolib/common/playercontainer/Container.java b/src/main/scala/me/skymc/taboolib/common/playercontainer/Container.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/playercontainer/Container.java rename to src/main/scala/me/skymc/taboolib/common/playercontainer/Container.java diff --git a/src/main/java/me/skymc/taboolib/common/playercontainer/PlayerContainer.java b/src/main/scala/me/skymc/taboolib/common/playercontainer/PlayerContainer.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/playercontainer/PlayerContainer.java rename to src/main/scala/me/skymc/taboolib/common/playercontainer/PlayerContainer.java diff --git a/src/main/java/me/skymc/taboolib/common/playercontainer/PlayerContainerLoader.java b/src/main/scala/me/skymc/taboolib/common/playercontainer/PlayerContainerLoader.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/playercontainer/PlayerContainerLoader.java rename to src/main/scala/me/skymc/taboolib/common/playercontainer/PlayerContainerLoader.java diff --git a/src/main/java/me/skymc/taboolib/common/schedule/TSchedule.java b/src/main/scala/me/skymc/taboolib/common/schedule/TSchedule.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/schedule/TSchedule.java rename to src/main/scala/me/skymc/taboolib/common/schedule/TSchedule.java diff --git a/src/main/java/me/skymc/taboolib/common/schedule/TScheduleData.java b/src/main/scala/me/skymc/taboolib/common/schedule/TScheduleData.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/schedule/TScheduleData.java rename to src/main/scala/me/skymc/taboolib/common/schedule/TScheduleData.java diff --git a/src/main/java/me/skymc/taboolib/common/schedule/TScheduleLoader.java b/src/main/scala/me/skymc/taboolib/common/schedule/TScheduleLoader.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/schedule/TScheduleLoader.java rename to src/main/scala/me/skymc/taboolib/common/schedule/TScheduleLoader.java diff --git a/src/main/java/me/skymc/taboolib/common/util/SimpleCounter.java b/src/main/scala/me/skymc/taboolib/common/util/SimpleCounter.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/util/SimpleCounter.java rename to src/main/scala/me/skymc/taboolib/common/util/SimpleCounter.java diff --git a/src/main/java/me/skymc/taboolib/common/util/SimpleIterator.java b/src/main/scala/me/skymc/taboolib/common/util/SimpleIterator.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/util/SimpleIterator.java rename to src/main/scala/me/skymc/taboolib/common/util/SimpleIterator.java diff --git a/src/main/java/me/skymc/taboolib/common/util/SimpleReflection.java b/src/main/scala/me/skymc/taboolib/common/util/SimpleReflection.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/util/SimpleReflection.java rename to src/main/scala/me/skymc/taboolib/common/util/SimpleReflection.java diff --git a/src/main/java/me/skymc/taboolib/common/versioncontrol/SimpleClassVisitor.java b/src/main/scala/me/skymc/taboolib/common/versioncontrol/SimpleClassVisitor.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/versioncontrol/SimpleClassVisitor.java rename to src/main/scala/me/skymc/taboolib/common/versioncontrol/SimpleClassVisitor.java diff --git a/src/main/java/me/skymc/taboolib/common/versioncontrol/SimpleMethodVisitor.java b/src/main/scala/me/skymc/taboolib/common/versioncontrol/SimpleMethodVisitor.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/versioncontrol/SimpleMethodVisitor.java rename to src/main/scala/me/skymc/taboolib/common/versioncontrol/SimpleMethodVisitor.java diff --git a/src/main/java/me/skymc/taboolib/common/versioncontrol/SimpleVersionControl.java b/src/main/scala/me/skymc/taboolib/common/versioncontrol/SimpleVersionControl.java similarity index 100% rename from src/main/java/me/skymc/taboolib/common/versioncontrol/SimpleVersionControl.java rename to src/main/scala/me/skymc/taboolib/common/versioncontrol/SimpleVersionControl.java diff --git a/src/main/java/me/skymc/taboolib/damage/DamageUtils.java b/src/main/scala/me/skymc/taboolib/damage/DamageUtils.java similarity index 100% rename from src/main/java/me/skymc/taboolib/damage/DamageUtils.java rename to src/main/scala/me/skymc/taboolib/damage/DamageUtils.java diff --git a/src/main/java/me/skymc/taboolib/database/GlobalDataManager.java b/src/main/scala/me/skymc/taboolib/database/GlobalDataManager.java similarity index 100% rename from src/main/java/me/skymc/taboolib/database/GlobalDataManager.java rename to src/main/scala/me/skymc/taboolib/database/GlobalDataManager.java diff --git a/src/main/java/me/skymc/taboolib/database/PlayerDataManager.java b/src/main/scala/me/skymc/taboolib/database/PlayerDataManager.java similarity index 100% rename from src/main/java/me/skymc/taboolib/database/PlayerDataManager.java rename to src/main/scala/me/skymc/taboolib/database/PlayerDataManager.java diff --git a/src/main/java/me/skymc/taboolib/events/CustomBookOpenEvent.java b/src/main/scala/me/skymc/taboolib/events/CustomBookOpenEvent.java similarity index 100% rename from src/main/java/me/skymc/taboolib/events/CustomBookOpenEvent.java rename to src/main/scala/me/skymc/taboolib/events/CustomBookOpenEvent.java diff --git a/src/main/java/me/skymc/taboolib/events/PlayerJumpEvent.java b/src/main/scala/me/skymc/taboolib/events/PlayerJumpEvent.java similarity index 100% rename from src/main/java/me/skymc/taboolib/events/PlayerJumpEvent.java rename to src/main/scala/me/skymc/taboolib/events/PlayerJumpEvent.java diff --git a/src/main/java/me/skymc/taboolib/events/PlayerLoadedEvent.java b/src/main/scala/me/skymc/taboolib/events/PlayerLoadedEvent.java similarity index 100% rename from src/main/java/me/skymc/taboolib/events/PlayerLoadedEvent.java rename to src/main/scala/me/skymc/taboolib/events/PlayerLoadedEvent.java diff --git a/src/main/java/me/skymc/taboolib/events/TPluginEnableEvent.java b/src/main/scala/me/skymc/taboolib/events/TPluginEnableEvent.java similarity index 100% rename from src/main/java/me/skymc/taboolib/events/TPluginEnableEvent.java rename to src/main/scala/me/skymc/taboolib/events/TPluginEnableEvent.java diff --git a/src/main/java/me/skymc/taboolib/events/TPluginLoadEvent.java b/src/main/scala/me/skymc/taboolib/events/TPluginLoadEvent.java similarity index 100% rename from src/main/java/me/skymc/taboolib/events/TPluginLoadEvent.java rename to src/main/scala/me/skymc/taboolib/events/TPluginLoadEvent.java diff --git a/src/main/java/me/skymc/taboolib/events/itag/AsyncPlayerReceiveNameTagEvent.java b/src/main/scala/me/skymc/taboolib/events/itag/AsyncPlayerReceiveNameTagEvent.java similarity index 100% rename from src/main/java/me/skymc/taboolib/events/itag/AsyncPlayerReceiveNameTagEvent.java rename to src/main/scala/me/skymc/taboolib/events/itag/AsyncPlayerReceiveNameTagEvent.java diff --git a/src/main/java/me/skymc/taboolib/events/itag/PlayerReceiveNameTagEvent.java b/src/main/scala/me/skymc/taboolib/events/itag/PlayerReceiveNameTagEvent.java similarity index 100% rename from src/main/java/me/skymc/taboolib/events/itag/PlayerReceiveNameTagEvent.java rename to src/main/scala/me/skymc/taboolib/events/itag/PlayerReceiveNameTagEvent.java diff --git a/src/main/java/me/skymc/taboolib/exception/PlayerOfflineException.java b/src/main/scala/me/skymc/taboolib/exception/PlayerOfflineException.java similarity index 100% rename from src/main/java/me/skymc/taboolib/exception/PlayerOfflineException.java rename to src/main/scala/me/skymc/taboolib/exception/PlayerOfflineException.java diff --git a/src/main/java/me/skymc/taboolib/exception/PluginNotFoundException.java b/src/main/scala/me/skymc/taboolib/exception/PluginNotFoundException.java similarity index 100% rename from src/main/java/me/skymc/taboolib/exception/PluginNotFoundException.java rename to src/main/scala/me/skymc/taboolib/exception/PluginNotFoundException.java diff --git a/src/main/java/me/skymc/taboolib/fileutils/ConfigUtils.java b/src/main/scala/me/skymc/taboolib/fileutils/ConfigUtils.java similarity index 100% rename from src/main/java/me/skymc/taboolib/fileutils/ConfigUtils.java rename to src/main/scala/me/skymc/taboolib/fileutils/ConfigUtils.java diff --git a/src/main/java/me/skymc/taboolib/fileutils/EncodeUtils.java b/src/main/scala/me/skymc/taboolib/fileutils/EncodeUtils.java similarity index 100% rename from src/main/java/me/skymc/taboolib/fileutils/EncodeUtils.java rename to src/main/scala/me/skymc/taboolib/fileutils/EncodeUtils.java diff --git a/src/main/java/me/skymc/taboolib/fileutils/FileUtils.java b/src/main/scala/me/skymc/taboolib/fileutils/FileUtils.java similarity index 100% rename from src/main/java/me/skymc/taboolib/fileutils/FileUtils.java rename to src/main/scala/me/skymc/taboolib/fileutils/FileUtils.java diff --git a/src/main/java/me/skymc/taboolib/fileutils/TLogs.java b/src/main/scala/me/skymc/taboolib/fileutils/TLogs.java similarity index 100% rename from src/main/java/me/skymc/taboolib/fileutils/TLogs.java rename to src/main/scala/me/skymc/taboolib/fileutils/TLogs.java diff --git a/src/main/java/me/skymc/taboolib/inventory/ItemUtils.java b/src/main/scala/me/skymc/taboolib/inventory/ItemUtils.java similarity index 100% rename from src/main/java/me/skymc/taboolib/inventory/ItemUtils.java rename to src/main/scala/me/skymc/taboolib/inventory/ItemUtils.java diff --git a/src/main/java/me/skymc/taboolib/inventory/builder/ItemBuilder.java b/src/main/scala/me/skymc/taboolib/inventory/builder/ItemBuilder.java similarity index 100% rename from src/main/java/me/skymc/taboolib/inventory/builder/ItemBuilder.java rename to src/main/scala/me/skymc/taboolib/inventory/builder/ItemBuilder.java diff --git a/src/main/java/me/skymc/taboolib/inventory/builder/MenuBuilder.java b/src/main/scala/me/skymc/taboolib/inventory/builder/MenuBuilder.java similarity index 100% rename from src/main/java/me/skymc/taboolib/inventory/builder/MenuBuilder.java rename to src/main/scala/me/skymc/taboolib/inventory/builder/MenuBuilder.java diff --git a/src/main/java/me/skymc/taboolib/inventory/builder/menu/MenuBuilderCallable.java b/src/main/scala/me/skymc/taboolib/inventory/builder/menu/MenuBuilderCallable.java similarity index 100% rename from src/main/java/me/skymc/taboolib/inventory/builder/menu/MenuBuilderCallable.java rename to src/main/scala/me/skymc/taboolib/inventory/builder/menu/MenuBuilderCallable.java diff --git a/src/main/java/me/skymc/taboolib/inventory/builder/menu/MenuBuilderEvent.java b/src/main/scala/me/skymc/taboolib/inventory/builder/menu/MenuBuilderEvent.java similarity index 100% rename from src/main/java/me/skymc/taboolib/inventory/builder/menu/MenuBuilderEvent.java rename to src/main/scala/me/skymc/taboolib/inventory/builder/menu/MenuBuilderEvent.java diff --git a/src/main/java/me/skymc/taboolib/inventory/builder/menu/MenuBuilderHolder.java b/src/main/scala/me/skymc/taboolib/inventory/builder/menu/MenuBuilderHolder.java similarity index 100% rename from src/main/java/me/skymc/taboolib/inventory/builder/menu/MenuBuilderHolder.java rename to src/main/scala/me/skymc/taboolib/inventory/builder/menu/MenuBuilderHolder.java diff --git a/src/main/java/me/skymc/taboolib/inventory/builder/menu/MenuBuilderItem.java b/src/main/scala/me/skymc/taboolib/inventory/builder/menu/MenuBuilderItem.java similarity index 100% rename from src/main/java/me/skymc/taboolib/inventory/builder/menu/MenuBuilderItem.java rename to src/main/scala/me/skymc/taboolib/inventory/builder/menu/MenuBuilderItem.java diff --git a/src/main/java/me/skymc/taboolib/inventory/builder/menu/MenuBuilderListener.java b/src/main/scala/me/skymc/taboolib/inventory/builder/menu/MenuBuilderListener.java similarity index 100% rename from src/main/java/me/skymc/taboolib/inventory/builder/menu/MenuBuilderListener.java rename to src/main/scala/me/skymc/taboolib/inventory/builder/menu/MenuBuilderListener.java diff --git a/src/main/java/me/skymc/taboolib/itagapi/TagDataHandler.java b/src/main/scala/me/skymc/taboolib/itagapi/TagDataHandler.java similarity index 100% rename from src/main/java/me/skymc/taboolib/itagapi/TagDataHandler.java rename to src/main/scala/me/skymc/taboolib/itagapi/TagDataHandler.java diff --git a/src/main/java/me/skymc/taboolib/itagapi/TagPacket.java b/src/main/scala/me/skymc/taboolib/itagapi/TagPacket.java similarity index 100% rename from src/main/java/me/skymc/taboolib/itagapi/TagPacket.java rename to src/main/scala/me/skymc/taboolib/itagapi/TagPacket.java diff --git a/src/main/java/me/skymc/taboolib/itagapi/TagPlayerData.java b/src/main/scala/me/skymc/taboolib/itagapi/TagPlayerData.java similarity index 100% rename from src/main/java/me/skymc/taboolib/itagapi/TagPlayerData.java rename to src/main/scala/me/skymc/taboolib/itagapi/TagPlayerData.java diff --git a/src/main/java/me/skymc/taboolib/itagapi/TagUtils.java b/src/main/scala/me/skymc/taboolib/itagapi/TagUtils.java similarity index 100% rename from src/main/java/me/skymc/taboolib/itagapi/TagUtils.java rename to src/main/scala/me/skymc/taboolib/itagapi/TagUtils.java diff --git a/src/main/java/me/skymc/taboolib/javascript/ScriptHandler.java b/src/main/scala/me/skymc/taboolib/javascript/ScriptHandler.java similarity index 100% rename from src/main/java/me/skymc/taboolib/javascript/ScriptHandler.java rename to src/main/scala/me/skymc/taboolib/javascript/ScriptHandler.java diff --git a/src/main/java/me/skymc/taboolib/json/tellraw/TellrawCreator.java b/src/main/scala/me/skymc/taboolib/json/tellraw/TellrawCreator.java similarity index 100% rename from src/main/java/me/skymc/taboolib/json/tellraw/TellrawCreator.java rename to src/main/scala/me/skymc/taboolib/json/tellraw/TellrawCreator.java diff --git a/src/main/java/me/skymc/taboolib/json/tellraw/TellrawJson.java b/src/main/scala/me/skymc/taboolib/json/tellraw/TellrawJson.java similarity index 100% rename from src/main/java/me/skymc/taboolib/json/tellraw/TellrawJson.java rename to src/main/scala/me/skymc/taboolib/json/tellraw/TellrawJson.java diff --git a/src/main/java/me/skymc/taboolib/json/tellraw/TellrawVersion.java b/src/main/scala/me/skymc/taboolib/json/tellraw/TellrawVersion.java similarity index 100% rename from src/main/java/me/skymc/taboolib/json/tellraw/TellrawVersion.java rename to src/main/scala/me/skymc/taboolib/json/tellraw/TellrawVersion.java diff --git a/src/main/java/me/skymc/taboolib/json/tellraw/internal/AbstractTellraw.java b/src/main/scala/me/skymc/taboolib/json/tellraw/internal/AbstractTellraw.java similarity index 100% rename from src/main/java/me/skymc/taboolib/json/tellraw/internal/AbstractTellraw.java rename to src/main/scala/me/skymc/taboolib/json/tellraw/internal/AbstractTellraw.java diff --git a/src/main/java/me/skymc/taboolib/json/tellraw/internal/InternalTellraw.java b/src/main/scala/me/skymc/taboolib/json/tellraw/internal/InternalTellraw.java similarity index 100% rename from src/main/java/me/skymc/taboolib/json/tellraw/internal/InternalTellraw.java rename to src/main/scala/me/skymc/taboolib/json/tellraw/internal/InternalTellraw.java diff --git a/src/main/java/me/skymc/taboolib/listener/ListenerNetWork.java b/src/main/scala/me/skymc/taboolib/listener/ListenerNetWork.java similarity index 100% rename from src/main/java/me/skymc/taboolib/listener/ListenerNetWork.java rename to src/main/scala/me/skymc/taboolib/listener/ListenerNetWork.java diff --git a/src/main/java/me/skymc/taboolib/listener/ListenerPlayerCommand.java b/src/main/scala/me/skymc/taboolib/listener/ListenerPlayerCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/listener/ListenerPlayerCommand.java rename to src/main/scala/me/skymc/taboolib/listener/ListenerPlayerCommand.java diff --git a/src/main/java/me/skymc/taboolib/listener/ListenerPlayerJoinAndQuit.java b/src/main/scala/me/skymc/taboolib/listener/ListenerPlayerJoinAndQuit.java similarity index 100% rename from src/main/java/me/skymc/taboolib/listener/ListenerPlayerJoinAndQuit.java rename to src/main/scala/me/skymc/taboolib/listener/ListenerPlayerJoinAndQuit.java diff --git a/src/main/java/me/skymc/taboolib/listener/ListenerPlayerJump.java b/src/main/scala/me/skymc/taboolib/listener/ListenerPlayerJump.java similarity index 100% rename from src/main/java/me/skymc/taboolib/listener/ListenerPlayerJump.java rename to src/main/scala/me/skymc/taboolib/listener/ListenerPlayerJump.java diff --git a/src/main/java/me/skymc/taboolib/listener/ListenerPlugin.java b/src/main/scala/me/skymc/taboolib/listener/ListenerPlugin.java similarity index 100% rename from src/main/java/me/skymc/taboolib/listener/ListenerPlugin.java rename to src/main/scala/me/skymc/taboolib/listener/ListenerPlugin.java diff --git a/src/main/java/me/skymc/taboolib/listener/TListener.java b/src/main/scala/me/skymc/taboolib/listener/TListener.java similarity index 100% rename from src/main/java/me/skymc/taboolib/listener/TListener.java rename to src/main/scala/me/skymc/taboolib/listener/TListener.java diff --git a/src/main/java/me/skymc/taboolib/listener/TListenerCommand.java b/src/main/scala/me/skymc/taboolib/listener/TListenerCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/listener/TListenerCommand.java rename to src/main/scala/me/skymc/taboolib/listener/TListenerCommand.java diff --git a/src/main/java/me/skymc/taboolib/listener/TListenerHandler.java b/src/main/scala/me/skymc/taboolib/listener/TListenerHandler.java similarity index 100% rename from src/main/java/me/skymc/taboolib/listener/TListenerHandler.java rename to src/main/scala/me/skymc/taboolib/listener/TListenerHandler.java diff --git a/src/main/java/me/skymc/taboolib/methods/ReflectionUtils.java b/src/main/scala/me/skymc/taboolib/methods/ReflectionUtils.java similarity index 100% rename from src/main/java/me/skymc/taboolib/methods/ReflectionUtils.java rename to src/main/scala/me/skymc/taboolib/methods/ReflectionUtils.java diff --git a/src/main/java/me/skymc/taboolib/mysql/IColumn.java b/src/main/scala/me/skymc/taboolib/mysql/IColumn.java similarity index 100% rename from src/main/java/me/skymc/taboolib/mysql/IColumn.java rename to src/main/scala/me/skymc/taboolib/mysql/IColumn.java diff --git a/src/main/java/me/skymc/taboolib/mysql/IHost.java b/src/main/scala/me/skymc/taboolib/mysql/IHost.java similarity index 100% rename from src/main/java/me/skymc/taboolib/mysql/IHost.java rename to src/main/scala/me/skymc/taboolib/mysql/IHost.java diff --git a/src/main/java/me/skymc/taboolib/mysql/builder/SQLColumn.java b/src/main/scala/me/skymc/taboolib/mysql/builder/SQLColumn.java similarity index 100% rename from src/main/java/me/skymc/taboolib/mysql/builder/SQLColumn.java rename to src/main/scala/me/skymc/taboolib/mysql/builder/SQLColumn.java diff --git a/src/main/java/me/skymc/taboolib/mysql/builder/SQLColumnOption.java b/src/main/scala/me/skymc/taboolib/mysql/builder/SQLColumnOption.java similarity index 100% rename from src/main/java/me/skymc/taboolib/mysql/builder/SQLColumnOption.java rename to src/main/scala/me/skymc/taboolib/mysql/builder/SQLColumnOption.java diff --git a/src/main/java/me/skymc/taboolib/mysql/builder/SQLColumnType.java b/src/main/scala/me/skymc/taboolib/mysql/builder/SQLColumnType.java similarity index 100% rename from src/main/java/me/skymc/taboolib/mysql/builder/SQLColumnType.java rename to src/main/scala/me/skymc/taboolib/mysql/builder/SQLColumnType.java diff --git a/src/main/java/me/skymc/taboolib/mysql/builder/SQLExecutor.java b/src/main/scala/me/skymc/taboolib/mysql/builder/SQLExecutor.java similarity index 100% rename from src/main/java/me/skymc/taboolib/mysql/builder/SQLExecutor.java rename to src/main/scala/me/skymc/taboolib/mysql/builder/SQLExecutor.java diff --git a/src/main/java/me/skymc/taboolib/mysql/builder/SQLHost.java b/src/main/scala/me/skymc/taboolib/mysql/builder/SQLHost.java similarity index 100% rename from src/main/java/me/skymc/taboolib/mysql/builder/SQLHost.java rename to src/main/scala/me/skymc/taboolib/mysql/builder/SQLHost.java diff --git a/src/main/java/me/skymc/taboolib/mysql/builder/SQLTable.java b/src/main/scala/me/skymc/taboolib/mysql/builder/SQLTable.java similarity index 100% rename from src/main/java/me/skymc/taboolib/mysql/builder/SQLTable.java rename to src/main/scala/me/skymc/taboolib/mysql/builder/SQLTable.java diff --git a/src/main/java/me/skymc/taboolib/mysql/builder/query/RunnableQuery.java b/src/main/scala/me/skymc/taboolib/mysql/builder/query/RunnableQuery.java similarity index 100% rename from src/main/java/me/skymc/taboolib/mysql/builder/query/RunnableQuery.java rename to src/main/scala/me/skymc/taboolib/mysql/builder/query/RunnableQuery.java diff --git a/src/main/java/me/skymc/taboolib/mysql/builder/query/RunnableUpdate.java b/src/main/scala/me/skymc/taboolib/mysql/builder/query/RunnableUpdate.java similarity index 100% rename from src/main/java/me/skymc/taboolib/mysql/builder/query/RunnableUpdate.java rename to src/main/scala/me/skymc/taboolib/mysql/builder/query/RunnableUpdate.java diff --git a/src/main/java/me/skymc/taboolib/mysql/builder/query/TaskResult.java b/src/main/scala/me/skymc/taboolib/mysql/builder/query/TaskResult.java similarity index 100% rename from src/main/java/me/skymc/taboolib/mysql/builder/query/TaskResult.java rename to src/main/scala/me/skymc/taboolib/mysql/builder/query/TaskResult.java diff --git a/src/main/java/me/skymc/taboolib/mysql/builder/query/TaskStatement.java b/src/main/scala/me/skymc/taboolib/mysql/builder/query/TaskStatement.java similarity index 100% rename from src/main/java/me/skymc/taboolib/mysql/builder/query/TaskStatement.java rename to src/main/scala/me/skymc/taboolib/mysql/builder/query/TaskStatement.java diff --git a/src/main/java/me/skymc/taboolib/mysql/hikari/HikariHandler.java b/src/main/scala/me/skymc/taboolib/mysql/hikari/HikariHandler.java similarity index 100% rename from src/main/java/me/skymc/taboolib/mysql/hikari/HikariHandler.java rename to src/main/scala/me/skymc/taboolib/mysql/hikari/HikariHandler.java diff --git a/src/main/java/me/skymc/taboolib/mysql/hikari/MapDataSource.java b/src/main/scala/me/skymc/taboolib/mysql/hikari/MapDataSource.java similarity index 100% rename from src/main/java/me/skymc/taboolib/mysql/hikari/MapDataSource.java rename to src/main/scala/me/skymc/taboolib/mysql/hikari/MapDataSource.java diff --git a/src/main/java/me/skymc/taboolib/mysql/sqlite/SQLiteColumn.java b/src/main/scala/me/skymc/taboolib/mysql/sqlite/SQLiteColumn.java similarity index 100% rename from src/main/java/me/skymc/taboolib/mysql/sqlite/SQLiteColumn.java rename to src/main/scala/me/skymc/taboolib/mysql/sqlite/SQLiteColumn.java diff --git a/src/main/java/me/skymc/taboolib/mysql/sqlite/SQLiteColumnOption.java b/src/main/scala/me/skymc/taboolib/mysql/sqlite/SQLiteColumnOption.java similarity index 100% rename from src/main/java/me/skymc/taboolib/mysql/sqlite/SQLiteColumnOption.java rename to src/main/scala/me/skymc/taboolib/mysql/sqlite/SQLiteColumnOption.java diff --git a/src/main/java/me/skymc/taboolib/mysql/sqlite/SQLiteColumnType.java b/src/main/scala/me/skymc/taboolib/mysql/sqlite/SQLiteColumnType.java similarity index 100% rename from src/main/java/me/skymc/taboolib/mysql/sqlite/SQLiteColumnType.java rename to src/main/scala/me/skymc/taboolib/mysql/sqlite/SQLiteColumnType.java diff --git a/src/main/java/me/skymc/taboolib/mysql/sqlite/SQLiteHost.java b/src/main/scala/me/skymc/taboolib/mysql/sqlite/SQLiteHost.java similarity index 100% rename from src/main/java/me/skymc/taboolib/mysql/sqlite/SQLiteHost.java rename to src/main/scala/me/skymc/taboolib/mysql/sqlite/SQLiteHost.java diff --git a/src/main/java/me/skymc/taboolib/object/WeightCollection.java b/src/main/scala/me/skymc/taboolib/object/WeightCollection.java similarity index 100% rename from src/main/java/me/skymc/taboolib/object/WeightCollection.java rename to src/main/scala/me/skymc/taboolib/object/WeightCollection.java diff --git a/src/main/java/me/skymc/taboolib/particle/EffLib.java b/src/main/scala/me/skymc/taboolib/particle/EffLib.java similarity index 100% rename from src/main/java/me/skymc/taboolib/particle/EffLib.java rename to src/main/scala/me/skymc/taboolib/particle/EffLib.java diff --git a/src/main/java/me/skymc/taboolib/particle/pack/ParticleData.java b/src/main/scala/me/skymc/taboolib/particle/pack/ParticleData.java similarity index 100% rename from src/main/java/me/skymc/taboolib/particle/pack/ParticleData.java rename to src/main/scala/me/skymc/taboolib/particle/pack/ParticleData.java diff --git a/src/main/java/me/skymc/taboolib/particle/pack/ParticlePack.java b/src/main/scala/me/skymc/taboolib/particle/pack/ParticlePack.java similarity index 100% rename from src/main/java/me/skymc/taboolib/particle/pack/ParticlePack.java rename to src/main/scala/me/skymc/taboolib/particle/pack/ParticlePack.java diff --git a/src/main/java/me/skymc/taboolib/particle/pack/ParticleType.java b/src/main/scala/me/skymc/taboolib/particle/pack/ParticleType.java similarity index 100% rename from src/main/java/me/skymc/taboolib/particle/pack/ParticleType.java rename to src/main/scala/me/skymc/taboolib/particle/pack/ParticleType.java diff --git a/src/main/java/me/skymc/taboolib/playerdata/DataUtils.java b/src/main/scala/me/skymc/taboolib/playerdata/DataUtils.java similarity index 100% rename from src/main/java/me/skymc/taboolib/playerdata/DataUtils.java rename to src/main/scala/me/skymc/taboolib/playerdata/DataUtils.java diff --git a/src/main/java/me/skymc/taboolib/plugin/PluginLoadState.java b/src/main/scala/me/skymc/taboolib/plugin/PluginLoadState.java similarity index 100% rename from src/main/java/me/skymc/taboolib/plugin/PluginLoadState.java rename to src/main/scala/me/skymc/taboolib/plugin/PluginLoadState.java diff --git a/src/main/java/me/skymc/taboolib/plugin/PluginLoadStateType.java b/src/main/scala/me/skymc/taboolib/plugin/PluginLoadStateType.java similarity index 100% rename from src/main/java/me/skymc/taboolib/plugin/PluginLoadStateType.java rename to src/main/scala/me/skymc/taboolib/plugin/PluginLoadStateType.java diff --git a/src/main/java/me/skymc/taboolib/plugin/PluginUnloadState.java b/src/main/scala/me/skymc/taboolib/plugin/PluginUnloadState.java similarity index 100% rename from src/main/java/me/skymc/taboolib/plugin/PluginUnloadState.java rename to src/main/scala/me/skymc/taboolib/plugin/PluginUnloadState.java diff --git a/src/main/java/me/skymc/taboolib/plugin/PluginUtils.java b/src/main/scala/me/skymc/taboolib/plugin/PluginUtils.java similarity index 100% rename from src/main/java/me/skymc/taboolib/plugin/PluginUtils.java rename to src/main/scala/me/skymc/taboolib/plugin/PluginUtils.java diff --git a/src/main/java/me/skymc/taboolib/scoreboard/ScoreboardUtil.java b/src/main/scala/me/skymc/taboolib/scoreboard/ScoreboardUtil.java similarity index 100% rename from src/main/java/me/skymc/taboolib/scoreboard/ScoreboardUtil.java rename to src/main/scala/me/skymc/taboolib/scoreboard/ScoreboardUtil.java diff --git a/src/main/java/me/skymc/taboolib/scoreboard/SimpleScoreboard.java b/src/main/scala/me/skymc/taboolib/scoreboard/SimpleScoreboard.java similarity index 100% rename from src/main/java/me/skymc/taboolib/scoreboard/SimpleScoreboard.java rename to src/main/scala/me/skymc/taboolib/scoreboard/SimpleScoreboard.java diff --git a/src/main/java/me/skymc/taboolib/socket/TabooLibClient.java b/src/main/scala/me/skymc/taboolib/socket/TabooLibClient.java similarity index 100% rename from src/main/java/me/skymc/taboolib/socket/TabooLibClient.java rename to src/main/scala/me/skymc/taboolib/socket/TabooLibClient.java diff --git a/src/main/java/me/skymc/taboolib/socket/TabooLibServer.java b/src/main/scala/me/skymc/taboolib/socket/TabooLibServer.java similarity index 100% rename from src/main/java/me/skymc/taboolib/socket/TabooLibServer.java rename to src/main/scala/me/skymc/taboolib/socket/TabooLibServer.java diff --git a/src/main/java/me/skymc/taboolib/socket/TabooLibSettings.java b/src/main/scala/me/skymc/taboolib/socket/TabooLibSettings.java similarity index 100% rename from src/main/java/me/skymc/taboolib/socket/TabooLibSettings.java rename to src/main/scala/me/skymc/taboolib/socket/TabooLibSettings.java diff --git a/src/main/java/me/skymc/taboolib/socket/packet/Packet.java b/src/main/scala/me/skymc/taboolib/socket/packet/Packet.java similarity index 100% rename from src/main/java/me/skymc/taboolib/socket/packet/Packet.java rename to src/main/scala/me/skymc/taboolib/socket/packet/Packet.java diff --git a/src/main/java/me/skymc/taboolib/socket/packet/PacketParser.java b/src/main/scala/me/skymc/taboolib/socket/packet/PacketParser.java similarity index 100% rename from src/main/java/me/skymc/taboolib/socket/packet/PacketParser.java rename to src/main/scala/me/skymc/taboolib/socket/packet/PacketParser.java diff --git a/src/main/java/me/skymc/taboolib/socket/packet/PacketSerializer.java b/src/main/scala/me/skymc/taboolib/socket/packet/PacketSerializer.java similarity index 100% rename from src/main/java/me/skymc/taboolib/socket/packet/PacketSerializer.java rename to src/main/scala/me/skymc/taboolib/socket/packet/PacketSerializer.java diff --git a/src/main/java/me/skymc/taboolib/socket/packet/PacketType.java b/src/main/scala/me/skymc/taboolib/socket/packet/PacketType.java similarity index 100% rename from src/main/java/me/skymc/taboolib/socket/packet/PacketType.java rename to src/main/scala/me/skymc/taboolib/socket/packet/PacketType.java diff --git a/src/main/java/me/skymc/taboolib/socket/packet/PacketValue.java b/src/main/scala/me/skymc/taboolib/socket/packet/PacketValue.java similarity index 100% rename from src/main/java/me/skymc/taboolib/socket/packet/PacketValue.java rename to src/main/scala/me/skymc/taboolib/socket/packet/PacketValue.java diff --git a/src/main/java/me/skymc/taboolib/socket/packet/impl/PacketAlive.java b/src/main/scala/me/skymc/taboolib/socket/packet/impl/PacketAlive.java similarity index 100% rename from src/main/java/me/skymc/taboolib/socket/packet/impl/PacketAlive.java rename to src/main/scala/me/skymc/taboolib/socket/packet/impl/PacketAlive.java diff --git a/src/main/java/me/skymc/taboolib/socket/packet/impl/PacketCommand.java b/src/main/scala/me/skymc/taboolib/socket/packet/impl/PacketCommand.java similarity index 100% rename from src/main/java/me/skymc/taboolib/socket/packet/impl/PacketCommand.java rename to src/main/scala/me/skymc/taboolib/socket/packet/impl/PacketCommand.java diff --git a/src/main/java/me/skymc/taboolib/socket/packet/impl/PacketEmpty.java b/src/main/scala/me/skymc/taboolib/socket/packet/impl/PacketEmpty.java similarity index 100% rename from src/main/java/me/skymc/taboolib/socket/packet/impl/PacketEmpty.java rename to src/main/scala/me/skymc/taboolib/socket/packet/impl/PacketEmpty.java diff --git a/src/main/java/me/skymc/taboolib/socket/packet/impl/PacketHeartbeat.java b/src/main/scala/me/skymc/taboolib/socket/packet/impl/PacketHeartbeat.java similarity index 100% rename from src/main/java/me/skymc/taboolib/socket/packet/impl/PacketHeartbeat.java rename to src/main/scala/me/skymc/taboolib/socket/packet/impl/PacketHeartbeat.java diff --git a/src/main/java/me/skymc/taboolib/socket/packet/impl/PacketJoin.java b/src/main/scala/me/skymc/taboolib/socket/packet/impl/PacketJoin.java similarity index 100% rename from src/main/java/me/skymc/taboolib/socket/packet/impl/PacketJoin.java rename to src/main/scala/me/skymc/taboolib/socket/packet/impl/PacketJoin.java diff --git a/src/main/java/me/skymc/taboolib/socket/packet/impl/PacketMessage.java b/src/main/scala/me/skymc/taboolib/socket/packet/impl/PacketMessage.java similarity index 100% rename from src/main/java/me/skymc/taboolib/socket/packet/impl/PacketMessage.java rename to src/main/scala/me/skymc/taboolib/socket/packet/impl/PacketMessage.java diff --git a/src/main/java/me/skymc/taboolib/socket/packet/impl/PacketQuit.java b/src/main/scala/me/skymc/taboolib/socket/packet/impl/PacketQuit.java similarity index 100% rename from src/main/java/me/skymc/taboolib/socket/packet/impl/PacketQuit.java rename to src/main/scala/me/skymc/taboolib/socket/packet/impl/PacketQuit.java diff --git a/src/main/java/me/skymc/taboolib/socket/server/ClientConnection.java b/src/main/scala/me/skymc/taboolib/socket/server/ClientConnection.java similarity index 100% rename from src/main/java/me/skymc/taboolib/socket/server/ClientConnection.java rename to src/main/scala/me/skymc/taboolib/socket/server/ClientConnection.java diff --git a/src/main/java/me/skymc/taboolib/sound/SoundPack.java b/src/main/scala/me/skymc/taboolib/sound/SoundPack.java similarity index 100% rename from src/main/java/me/skymc/taboolib/sound/SoundPack.java rename to src/main/scala/me/skymc/taboolib/sound/SoundPack.java diff --git a/src/main/java/me/skymc/taboolib/sound/SoundUtils.java b/src/main/scala/me/skymc/taboolib/sound/SoundUtils.java similarity index 100% rename from src/main/java/me/skymc/taboolib/sound/SoundUtils.java rename to src/main/scala/me/skymc/taboolib/sound/SoundUtils.java diff --git a/src/main/java/me/skymc/taboolib/string/ArrayUtils.java b/src/main/scala/me/skymc/taboolib/string/ArrayUtils.java similarity index 100% rename from src/main/java/me/skymc/taboolib/string/ArrayUtils.java rename to src/main/scala/me/skymc/taboolib/string/ArrayUtils.java diff --git a/src/main/java/me/skymc/taboolib/string/Language.java b/src/main/scala/me/skymc/taboolib/string/Language.java similarity index 100% rename from src/main/java/me/skymc/taboolib/string/Language.java rename to src/main/scala/me/skymc/taboolib/string/Language.java diff --git a/src/main/java/me/skymc/taboolib/string/LanguagePack.java b/src/main/scala/me/skymc/taboolib/string/LanguagePack.java similarity index 100% rename from src/main/java/me/skymc/taboolib/string/LanguagePack.java rename to src/main/scala/me/skymc/taboolib/string/LanguagePack.java diff --git a/src/main/java/me/skymc/taboolib/string/LanguageUtils.java b/src/main/scala/me/skymc/taboolib/string/LanguageUtils.java similarity index 100% rename from src/main/java/me/skymc/taboolib/string/LanguageUtils.java rename to src/main/scala/me/skymc/taboolib/string/LanguageUtils.java diff --git a/src/main/java/me/skymc/taboolib/string/PatternUtils.java b/src/main/scala/me/skymc/taboolib/string/PatternUtils.java similarity index 100% rename from src/main/java/me/skymc/taboolib/string/PatternUtils.java rename to src/main/scala/me/skymc/taboolib/string/PatternUtils.java diff --git a/src/main/java/me/skymc/taboolib/string/StringUtils.java b/src/main/scala/me/skymc/taboolib/string/StringUtils.java similarity index 100% rename from src/main/java/me/skymc/taboolib/string/StringUtils.java rename to src/main/scala/me/skymc/taboolib/string/StringUtils.java diff --git a/src/main/java/me/skymc/taboolib/string/VariableFormatter.java b/src/main/scala/me/skymc/taboolib/string/VariableFormatter.java similarity index 100% rename from src/main/java/me/skymc/taboolib/string/VariableFormatter.java rename to src/main/scala/me/skymc/taboolib/string/VariableFormatter.java diff --git a/src/main/java/me/skymc/taboolib/string/language2/Language2.java b/src/main/scala/me/skymc/taboolib/string/language2/Language2.java similarity index 100% rename from src/main/java/me/skymc/taboolib/string/language2/Language2.java rename to src/main/scala/me/skymc/taboolib/string/language2/Language2.java diff --git a/src/main/java/me/skymc/taboolib/string/language2/Language2Format.java b/src/main/scala/me/skymc/taboolib/string/language2/Language2Format.java similarity index 100% rename from src/main/java/me/skymc/taboolib/string/language2/Language2Format.java rename to src/main/scala/me/skymc/taboolib/string/language2/Language2Format.java diff --git a/src/main/java/me/skymc/taboolib/string/language2/Language2Line.java b/src/main/scala/me/skymc/taboolib/string/language2/Language2Line.java similarity index 100% rename from src/main/java/me/skymc/taboolib/string/language2/Language2Line.java rename to src/main/scala/me/skymc/taboolib/string/language2/Language2Line.java diff --git a/src/main/java/me/skymc/taboolib/string/language2/Language2Type.java b/src/main/scala/me/skymc/taboolib/string/language2/Language2Type.java similarity index 100% rename from src/main/java/me/skymc/taboolib/string/language2/Language2Type.java rename to src/main/scala/me/skymc/taboolib/string/language2/Language2Type.java diff --git a/src/main/java/me/skymc/taboolib/string/language2/Language2Value.java b/src/main/scala/me/skymc/taboolib/string/language2/Language2Value.java similarity index 100% rename from src/main/java/me/skymc/taboolib/string/language2/Language2Value.java rename to src/main/scala/me/skymc/taboolib/string/language2/Language2Value.java diff --git a/src/main/java/me/skymc/taboolib/string/language2/value/Language2Action.java b/src/main/scala/me/skymc/taboolib/string/language2/value/Language2Action.java similarity index 100% rename from src/main/java/me/skymc/taboolib/string/language2/value/Language2Action.java rename to src/main/scala/me/skymc/taboolib/string/language2/value/Language2Action.java diff --git a/src/main/java/me/skymc/taboolib/string/language2/value/Language2Book.java b/src/main/scala/me/skymc/taboolib/string/language2/value/Language2Book.java similarity index 100% rename from src/main/java/me/skymc/taboolib/string/language2/value/Language2Book.java rename to src/main/scala/me/skymc/taboolib/string/language2/value/Language2Book.java diff --git a/src/main/java/me/skymc/taboolib/string/language2/value/Language2Json.java b/src/main/scala/me/skymc/taboolib/string/language2/value/Language2Json.java similarity index 100% rename from src/main/java/me/skymc/taboolib/string/language2/value/Language2Json.java rename to src/main/scala/me/skymc/taboolib/string/language2/value/Language2Json.java diff --git a/src/main/java/me/skymc/taboolib/string/language2/value/Language2Json2.java b/src/main/scala/me/skymc/taboolib/string/language2/value/Language2Json2.java similarity index 100% rename from src/main/java/me/skymc/taboolib/string/language2/value/Language2Json2.java rename to src/main/scala/me/skymc/taboolib/string/language2/value/Language2Json2.java diff --git a/src/main/java/me/skymc/taboolib/string/language2/value/Language2Sound.java b/src/main/scala/me/skymc/taboolib/string/language2/value/Language2Sound.java similarity index 100% rename from src/main/java/me/skymc/taboolib/string/language2/value/Language2Sound.java rename to src/main/scala/me/skymc/taboolib/string/language2/value/Language2Sound.java diff --git a/src/main/java/me/skymc/taboolib/string/language2/value/Language2Text.java b/src/main/scala/me/skymc/taboolib/string/language2/value/Language2Text.java similarity index 100% rename from src/main/java/me/skymc/taboolib/string/language2/value/Language2Text.java rename to src/main/scala/me/skymc/taboolib/string/language2/value/Language2Text.java diff --git a/src/main/java/me/skymc/taboolib/string/language2/value/Language2Title.java b/src/main/scala/me/skymc/taboolib/string/language2/value/Language2Title.java similarity index 100% rename from src/main/java/me/skymc/taboolib/string/language2/value/Language2Title.java rename to src/main/scala/me/skymc/taboolib/string/language2/value/Language2Title.java diff --git a/src/main/java/me/skymc/taboolib/support/SupportWorldGuard.java b/src/main/scala/me/skymc/taboolib/support/SupportWorldGuard.java similarity index 100% rename from src/main/java/me/skymc/taboolib/support/SupportWorldGuard.java rename to src/main/scala/me/skymc/taboolib/support/SupportWorldGuard.java diff --git a/src/main/java/me/skymc/taboolib/timeutil/TimeFormatter.java b/src/main/scala/me/skymc/taboolib/timeutil/TimeFormatter.java similarity index 100% rename from src/main/java/me/skymc/taboolib/timeutil/TimeFormatter.java rename to src/main/scala/me/skymc/taboolib/timeutil/TimeFormatter.java diff --git a/src/main/java/me/skymc/taboolib/update/UpdateTask.java b/src/main/scala/me/skymc/taboolib/update/UpdateTask.java similarity index 100% rename from src/main/java/me/skymc/taboolib/update/UpdateTask.java rename to src/main/scala/me/skymc/taboolib/update/UpdateTask.java