Skip to content

Commit

Permalink
Added MC 1.20.1 support
Browse files Browse the repository at this point in the history
  • Loading branch information
Despical committed Jun 19, 2023
1 parent 72cd197 commit 60fed2a
Show file tree
Hide file tree
Showing 7 changed files with 75 additions and 100 deletions.
64 changes: 37 additions & 27 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

<groupId>me.despical</groupId>
<artifactId>one-in-the-chamber</artifactId>
<version>2.3.5</version>
<version>2.3.6</version>
<name>One In The Chamber</name>

<properties>
Expand Down Expand Up @@ -36,47 +36,54 @@
<url>https://papermc.io/repo/repository/maven-public/</url>
</repository>
<repository>

<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
<repository>

<id>papi-repo</id>
<url>https://repo.extendedclip.com/content/repositories/placeholderapi/</url>
</repository>
<repository>

<id>codemc-repo</id>
<url>https://repo.codemc.org/repository/maven-public/</url>
</repository>
</repositories>

<dependencies>
<dependency>
<groupId>com.destroystokyo.paper</groupId>
<artifactId>paper-api</artifactId>
<version>1.16.5-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.github.Despical</groupId>
<artifactId>Commons</artifactId>
<version>1.6.1</version>
<version>1.6.4</version>
</dependency>

<dependency>
<groupId>com.github.Despical</groupId>
<artifactId>InventoryFramework</artifactId>
<version>2.2.5</version>
<version>2.2.6</version>
</dependency>

<dependency>
<groupId>org.bstats</groupId>
<artifactId>bstats-bukkit</artifactId>
<version>3.0.1</version>
</dependency>

<dependency>
<groupId>com.destroystokyo.paper</groupId>
<artifactId>paper-api</artifactId>
<version>1.16.5-R0.1-SNAPSHOT</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>me.clip</groupId>
<artifactId>placeholderapi</artifactId>
<version>2.11.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.bstats</groupId>
<artifactId>bstats-bukkit</artifactId>
<version>3.0.1</version>
</dependency>
</dependencies>

<build>
Expand All @@ -92,14 +99,15 @@
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
<goals>
<goal>compile</goal>
</goals>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
Expand All @@ -113,17 +121,18 @@
</execution>
</executions>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
</archive>
<outputDirectory>C:\Users\berke\OneDrive\Masaüstü\Server\plugins</outputDirectory>
</configuration>
<configuration>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
</archive>
</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
Expand All @@ -147,6 +156,7 @@
</execution>
</executions>
</plugin>

</plugins>
</build>
</project>
89 changes: 27 additions & 62 deletions src/main/java/me/despical/oitc/Main.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,7 @@
import me.despical.oitc.handlers.items.GameItemManager;
import me.despical.oitc.handlers.language.LanguageManager;
import org.bstats.bukkit.Metrics;
import me.despical.commons.compat.VersionResolver;
import me.despical.commons.database.MysqlDatabase;
import me.despical.commons.exception.ExceptionLogHandler;
import me.despical.commons.miscellaneous.AttributeUtils;
import me.despical.commons.scoreboard.ScoreboardLib;
import me.despical.commons.serializer.InventorySerializer;
Expand All @@ -44,6 +42,7 @@
import org.bstats.charts.SimplePie;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import org.jetbrains.annotations.NotNull;

import java.io.File;

Expand All @@ -54,9 +53,6 @@
*/
public class Main extends JavaPlugin {

private boolean forceDisable;

private ExceptionLogHandler exceptionLogHandler;
private BungeeManager bungeeManager;
private RewardsFactory rewardsFactory;
private MysqlDatabase database;
Expand All @@ -71,54 +67,15 @@ public class Main extends JavaPlugin {

@Override
public void onEnable() {
this.forceDisable = validateIfPluginShouldStart();

if (forceDisable) {
getServer().getPluginManager().disablePlugin(this);
return;
}

exceptionLogHandler = new ExceptionLogHandler(this);
exceptionLogHandler.setMainPackage("me.despical.oitc");
exceptionLogHandler.addBlacklistedClass("me.despical.oitc.user.data.MysqlManager", "me.despical.commons.database.MysqlDatabase");
exceptionLogHandler.setRecordMessage("[OITC] We have found a bug in the code. Contact us at our official Discord server (link: https://discord.gg/rVkaGmyszE) with the following error given above!");

this.configPreferences = new ConfigPreferences(this);

setupFiles();
initializeClasses();
checkUpdate();

getLogger().info("Initialization finished. Join our Discord server if you need any help. (https://discord.gg/rVkaGmyszE)");

if (configPreferences.getOption(ConfigPreferences.Option.NAME_TAGS_HIDDEN)) {
getServer().getScheduler().scheduleSyncRepeatingTask(this, () -> getServer().getOnlinePlayers().forEach(ArenaUtils::updateNameTagsVisibility), 60, 140);
}
getLogger().info("Initialization finished. Join our Discord server: https://discord.gg/rVkaGmyszE");
}

private boolean validateIfPluginShouldStart() {
if (!VersionResolver.isCurrentBetween(VersionResolver.ServerVersion.v1_8_R3, VersionResolver.ServerVersion.v1_19_R3)) {
getLogger().info("Your server version is not supported by One in the Chamber!");
getLogger().info("Sadly, we must shut off. Maybe you consider changing your server version?");
return true;
}

try {
Class.forName("org.spigotmc.SpigotConfig");
} catch (Exception exception) {
getLogger().info("Your server software is not supported by One in the Chamber!");
getLogger().info("We support only Spigot and Spigot forks only! Shutting off...");
return true;
}

return false;
}

@Override
public void onDisable() {
if (forceDisable) return;

getServer().getLogger().removeHandler(exceptionLogHandler);
saveAllUserStatistics();

if (database != null) {
Expand Down Expand Up @@ -152,19 +109,9 @@ public void onDisable() {
}

private void initializeClasses() {
ScoreboardLib.setPluginInstance(this);

configPreferences = new ConfigPreferences(this);
chatManager = new ChatManager(this);
languageManager = new LanguageManager(this);

if (configPreferences.getOption(ConfigPreferences.Option.BUNGEE_ENABLED)) {
bungeeManager = new BungeeManager(this);
}

if (configPreferences.getOption(ConfigPreferences.Option.DATABASE_ENABLED)) {
database = new MysqlDatabase(this, "mysql");
}

userManager = new UserManager(this);
signManager = new SignManager(this);
ArenaRegistry.registerArenas();
Expand All @@ -174,9 +121,17 @@ private void initializeClasses() {
permissionsManager = new PermissionsManager(this);
gameItemManager = new GameItemManager(this);

if (configPreferences.getOption(ConfigPreferences.Option.BUNGEE_ENABLED)) bungeeManager = new BungeeManager(this);
if (configPreferences.getOption(ConfigPreferences.Option.DATABASE_ENABLED)) database = new MysqlDatabase(this, "mysql");

ScoreboardLib.setPluginInstance(this);
ListenerAdapter.registerEvents(this);

registerSoftDependenciesAndServices();

if (configPreferences.getOption(ConfigPreferences.Option.NAME_TAGS_HIDDEN)) {
getServer().getScheduler().scheduleSyncRepeatingTask(this, () -> getServer().getOnlinePlayers().forEach(ArenaUtils::updateNameTagsVisibility), 60, 140);
}
}

private void registerSoftDependenciesAndServices() {
Expand Down Expand Up @@ -211,43 +166,53 @@ private void checkUpdate() {
private void setupFiles() {
Collections.streamOf("arenas", "bungee", "rewards", "stats", "items", "mysql", "messages").filter(name -> !new File(getDataFolder(),name + ".yml").exists()).forEach(name -> saveResource(name + ".yml", false));
}


@NotNull
public RewardsFactory getRewardsFactory() {
return rewardsFactory;
}


@NotNull
public BungeeManager getBungeeManager() {
return bungeeManager;
}


@NotNull
public ConfigPreferences getConfigPreferences() {
return configPreferences;
}


@NotNull
public MysqlDatabase getMysqlDatabase() {
return database;
}


@NotNull
public SignManager getSignManager() {
return signManager;
}

@NotNull
public ChatManager getChatManager() {
return chatManager;
}


@NotNull
public CommandHandler getCommandHandler() {
return commandHandler;
}

@NotNull
public UserManager getUserManager() {
return userManager;
}

@NotNull
public PermissionsManager getPermissionsManager() {
return permissionsManager;
}

@NotNull
public GameItemManager getGameItemManager() {
return gameItemManager;
}
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/me/despical/oitc/arena/ArenaUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

package me.despical.oitc.arena;

import me.despical.commons.compat.VersionResolver;
import me.despical.commons.ReflectionUtils;
import me.despical.commons.miscellaneous.PlayerUtils;
import me.despical.oitc.ConfigPreferences;
import me.despical.oitc.Main;
Expand Down Expand Up @@ -78,7 +78,7 @@ public static void showPlayersOutsideTheGame(Player player, Arena arena) {
}
}

private final static boolean isLegacy = VersionResolver.isCurrentEqual(VersionResolver.ServerVersion.v1_8_R3);
private final static boolean isLegacy = ReflectionUtils.supports(8);
private final static boolean isNameTagsSupported = !isLegacy && plugin.getConfigPreferences().getOption(ConfigPreferences.Option.NAME_TAGS_HIDDEN);

public static boolean isLegacy() {
Expand Down
6 changes: 3 additions & 3 deletions src/main/java/me/despical/oitc/events/Events.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@

package me.despical.oitc.events;

import me.despical.commons.ReflectionUtils;
import me.despical.commons.compat.Titles;
import me.despical.commons.compat.VersionResolver;
import me.despical.commons.compat.XMaterial;
import me.despical.commons.miscellaneous.AttributeUtils;
import me.despical.commons.miscellaneous.PlayerUtils;
Expand Down Expand Up @@ -449,7 +449,7 @@ public void onDrop(PlayerDropItemEvent event) {
}

private void registerLegacyEvents() {
registerIf(VersionResolver.isCurrentHigher(VersionResolver.ServerVersion.v1_9_R2), () -> new Listener() {
registerIf(ReflectionUtils.supports(9) && ReflectionUtils.supportsPatch(2), new Listener() {

@EventHandler
public void onItemSwap(PlayerSwapHandItemsEvent event) {
Expand All @@ -459,7 +459,7 @@ public void onItemSwap(PlayerSwapHandItemsEvent event) {
}
});

registerIf(VersionResolver.isCurrentHigher(VersionResolver.ServerVersion.v1_8_R3), () -> new Listener() {
registerIf(ReflectionUtils.supports(8) && ReflectionUtils.supportsPatch(3), new Listener() {

@EventHandler
public void onArrowPickup(PlayerPickupArrowEvent event) {
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/me/despical/oitc/events/ListenerAdapter.java
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,10 @@ public ListenerAdapter(Main plugin) {
this.plugin.getServer().getPluginManager().registerEvents(this, plugin);
}

protected void registerIf(boolean cond, Supplier<Listener> supplier) {
protected void registerIf(boolean cond, Listener listener) {
if (!cond) return;

plugin.getServer().getPluginManager().registerEvents(supplier.get(), plugin);
plugin.getServer().getPluginManager().registerEvents(listener, plugin);
}

public static void registerEvents(Main plugin) {
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/me/despical/oitc/handlers/sign/ArenaSign.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

package me.despical.oitc.handlers.sign;

import me.despical.commons.compat.VersionResolver;
import me.despical.commons.ReflectionUtils;
import me.despical.oitc.arena.Arena;
import org.bukkit.Location;
import org.bukkit.block.Block;
Expand Down Expand Up @@ -47,7 +47,7 @@ public ArenaSign(Sign sign, Arena arena) {

private void setBehindBlock() {
if (sign.getBlock().getType().name().equals("WALL_SIGN")) {
this.behind = VersionResolver.isCurrentEqualOrHigher(VersionResolver.ServerVersion.v1_14_R1) ? getBlockBehind() : getBlockBehindLegacy();
this.behind = ReflectionUtils.supports(14) ? getBlockBehind() : getBlockBehindLegacy();
}
}

Expand Down
Loading

0 comments on commit 60fed2a

Please sign in to comment.