aboutsummaryrefslogtreecommitdiffstats
path: root/bukkit/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'bukkit/src/main/java')
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java84
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/actionbar/ActionBar_Nothing.java6
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/actionbar/ActionBar_Paper.java11
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/actionbar/ActionBar_Spigot.java (renamed from bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/actionbar/ActionBar_Bukkit.java)7
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/actionbar/QuestsActionBar.java2
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/bossbar/BossBar_Nothing.java5
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/title/QuestsTitle.java9
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/title/Title.java8
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/title/Title_Bukkit.java9
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/title/Title_BukkitNoTimings.java10
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/title/Title_Nothing.java10
-rw-r--r--bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/title/Title_Other.java11
12 files changed, 115 insertions, 57 deletions
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java
index b3932f82..b6388d15 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/BukkitQuestsPlugin.java
@@ -12,9 +12,17 @@ import java.util.List;
import java.util.Map;
import java.util.function.BiFunction;
+import com.leonardobishop.quests.bukkit.hook.actionbar.ActionBar_Nothing;
+import com.leonardobishop.quests.bukkit.hook.actionbar.ActionBar_Paper;
+import com.leonardobishop.quests.bukkit.hook.actionbar.ActionBar_Spigot;
+import net.md_5.bungee.api.ChatMessageType;
+import net.md_5.bungee.api.chat.BaseComponent;
import org.bstats.bukkit.MetricsLite;
import org.bukkit.Bukkit;
import org.bukkit.block.Block;
+import org.bukkit.boss.BarColor;
+import org.bukkit.boss.BarFlag;
+import org.bukkit.boss.BarStyle;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
@@ -28,8 +36,6 @@ import com.leonardobishop.quests.bukkit.command.QuestsCommandSwitcher;
import com.leonardobishop.quests.bukkit.config.BukkitQuestsConfig;
import com.leonardobishop.quests.bukkit.config.BukkitQuestsLoader;
import com.leonardobishop.quests.bukkit.hook.actionbar.QuestsActionBar;
-import com.leonardobishop.quests.bukkit.hook.actionbar.ActionBar_Bukkit;
-import com.leonardobishop.quests.bukkit.hook.actionbar.ActionBar_Nothing;
import com.leonardobishop.quests.bukkit.hook.bossbar.QuestsBossBar;
import com.leonardobishop.quests.bukkit.hook.bossbar.BossBar_Bukkit;
import com.leonardobishop.quests.bukkit.hook.bossbar.BossBar_Nothing;
@@ -45,10 +51,10 @@ import com.leonardobishop.quests.bukkit.hook.papi.AbstractPlaceholderAPIHook;
import com.leonardobishop.quests.bukkit.hook.papi.PlaceholderAPIHook;
import com.leonardobishop.quests.bukkit.hook.playerblocktracker.AbstractPlayerBlockTrackerHook;
import com.leonardobishop.quests.bukkit.hook.playerblocktracker.PlayerBlockTrackerHook;
-import com.leonardobishop.quests.bukkit.hook.title.Title;
+import com.leonardobishop.quests.bukkit.hook.title.QuestsTitle;
import com.leonardobishop.quests.bukkit.hook.title.Title_Bukkit;
import com.leonardobishop.quests.bukkit.hook.title.Title_BukkitNoTimings;
-import com.leonardobishop.quests.bukkit.hook.title.Title_Other;
+import com.leonardobishop.quests.bukkit.hook.title.Title_Nothing;
import com.leonardobishop.quests.bukkit.hook.versionspecific.VersionSpecificHandler;
import com.leonardobishop.quests.bukkit.hook.versionspecific.VersionSpecificHandler11;
import com.leonardobishop.quests.bukkit.hook.versionspecific.VersionSpecificHandler16;
@@ -162,7 +168,7 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests {
private AbstractEssentialsHook essentialsHook;
private AbstractPlayerBlockTrackerHook playerBlockTrackerHook;
private ItemGetter itemGetter;
- private Title titleHandle;
+ private QuestsTitle titleHandle;
private QuestsBossBar bossBarHandle;
private QuestsActionBar actionBarHandle;
private VersionSpecificHandler versionSpecificHandler;
@@ -273,19 +279,18 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests {
questsLogger.warning("Failed to resolve server version - some features may not work!");
version = 0;
}
+
questsLogger.info("Your server is running version 1." + version);
+
// (titles)
- if (version < 8) {
- titleHandle = new Title_Other();
- } else if (version <= 10) {
- titleHandle = new Title_BukkitNoTimings();
- } else {
- titleHandle = new Title_Bukkit();
- }
+ setTitleHandle();
+
// (bossbar)
- bossBarHandle = version <= 8 ? new BossBar_Nothing() : new BossBar_Bukkit(this);
+ setBossBarHandle();
+
// (actionbar)
- actionBarHandle = version <= 9 ? new ActionBar_Nothing() : new ActionBar_Bukkit();
+ setActionBarHandle();
+
// (itemstacks)
if (version <= 12) {
itemGetter = new ItemGetter_Late_1_8();
@@ -294,6 +299,7 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests {
} else {
itemGetter = new ItemGetterLatest();
}
+
// (version specific handler)
// TODO move above to version specific handlers
if (version <= 8) {
@@ -655,6 +661,54 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests {
}
}
+ private void setTitleHandle() {
+ try {
+ Player.class.getMethod("sendTitle", String.class, String.class, int.class, int.class, int.class);
+ titleHandle = new Title_Bukkit();
+ return;
+ } catch (NoSuchMethodException ignored) {
+ }
+
+ try {
+ Player.class.getMethod("sendTitle", String.class, String.class);
+ titleHandle = new Title_BukkitNoTimings();
+ return;
+ } catch (NoSuchMethodException ignored) {
+ }
+
+ titleHandle = new Title_Nothing();
+ }
+
+ private void setBossBarHandle() {
+ try {
+ Bukkit.class.getMethod("createBossBar", String.class, BarColor.class, BarStyle.class, BarFlag[].class);
+ bossBarHandle = new BossBar_Bukkit(this);
+ return;
+ } catch (NoSuchMethodException ignored) {
+ }
+
+ bossBarHandle = new BossBar_Nothing();
+ }
+
+ @SuppressWarnings("deprecation")
+ private void setActionBarHandle() {
+ try {
+ Player.class.getMethod("sendActionBar", String.class);
+ actionBarHandle = new ActionBar_Paper();
+ return;
+ } catch (NoSuchMethodException ignored) {
+ }
+
+ try {
+ Player.Spigot.class.getMethod("sendMessage", ChatMessageType.class, BaseComponent.class);
+ actionBarHandle = new ActionBar_Spigot();
+ return;
+ } catch (NoSuchMethodException ignored) {
+ }
+
+ actionBarHandle = new ActionBar_Nothing();
+ }
+
public boolean isValidConfiguration() {
return validConfiguration;
}
@@ -687,7 +741,7 @@ public class BukkitQuestsPlugin extends JavaPlugin implements Quests {
return itemGetter;
}
- public Title getTitleHandle() {
+ public QuestsTitle getTitleHandle() {
return titleHandle;
}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/actionbar/ActionBar_Nothing.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/actionbar/ActionBar_Nothing.java
index 9f0c6567..6590606e 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/actionbar/ActionBar_Nothing.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/actionbar/ActionBar_Nothing.java
@@ -3,10 +3,8 @@ package com.leonardobishop.quests.bukkit.hook.actionbar;
import org.bukkit.entity.Player;
public class ActionBar_Nothing implements QuestsActionBar {
-
@Override
- public void sendActionBar(Player p, String line) {
- // version as 1.9 and under
+ public void sendActionBar(Player player, String title) {
+ // no compatible action bar impl found
}
-
}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/actionbar/ActionBar_Paper.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/actionbar/ActionBar_Paper.java
new file mode 100644
index 00000000..7377505d
--- /dev/null
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/actionbar/ActionBar_Paper.java
@@ -0,0 +1,11 @@
+package com.leonardobishop.quests.bukkit.hook.actionbar;
+
+import org.bukkit.entity.Player;
+
+public class ActionBar_Paper implements QuestsActionBar {
+ @SuppressWarnings("deprecation")
+ @Override
+ public void sendActionBar(Player player, String title) {
+ player.sendActionBar(title);
+ }
+}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/actionbar/ActionBar_Bukkit.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/actionbar/ActionBar_Spigot.java
index c387cda6..c57f62ed 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/actionbar/ActionBar_Bukkit.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/actionbar/ActionBar_Spigot.java
@@ -5,11 +5,10 @@ import org.bukkit.entity.Player;
import net.md_5.bungee.api.ChatMessageType;
import net.md_5.bungee.api.chat.TextComponent;
-public class ActionBar_Bukkit implements QuestsActionBar {
-
+public class ActionBar_Spigot implements QuestsActionBar {
@SuppressWarnings("deprecation")
@Override
- public void sendActionBar(Player p, String line) {
- p.spigot().sendMessage(ChatMessageType.ACTION_BAR, new TextComponent(line));
+ public void sendActionBar(Player player, String title) {
+ player.spigot().sendMessage(ChatMessageType.ACTION_BAR, new TextComponent(title));
}
}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/actionbar/QuestsActionBar.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/actionbar/QuestsActionBar.java
index a9fe17eb..98964d49 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/actionbar/QuestsActionBar.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/actionbar/QuestsActionBar.java
@@ -4,6 +4,6 @@ import org.bukkit.entity.Player;
public interface QuestsActionBar {
- void sendActionBar(Player p, String line);
+ void sendActionBar(Player player, String title);
}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/bossbar/BossBar_Nothing.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/bossbar/BossBar_Nothing.java
index 66ab96ae..fb149e42 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/bossbar/BossBar_Nothing.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/bossbar/BossBar_Nothing.java
@@ -6,12 +6,11 @@ public class BossBar_Nothing implements QuestsBossBar {
@Override
public void sendBossBar(Player player, String questId, String title, int time) {
- // old versions as 1.8
+ // no compatible boss bar impl found
}
@Override
public void sendBossBar(Player player, String questId, String title, int time, float progress) {
- // old versions as 1.8
+ // no compatible boss bar impl found
}
-
}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/title/QuestsTitle.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/title/QuestsTitle.java
new file mode 100644
index 00000000..2dcd5960
--- /dev/null
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/title/QuestsTitle.java
@@ -0,0 +1,9 @@
+package com.leonardobishop.quests.bukkit.hook.title;
+
+import org.bukkit.entity.Player;
+
+public interface QuestsTitle {
+
+ void sendTitle(Player player, String title, String subtitle);
+
+}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/title/Title.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/title/Title.java
deleted file mode 100644
index 49c4613b..00000000
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/title/Title.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.leonardobishop.quests.bukkit.hook.title;
-
-import org.bukkit.entity.Player;
-
-public interface Title {
-
- void sendTitle(Player player, String message, String submessage);
-} \ No newline at end of file
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/title/Title_Bukkit.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/title/Title_Bukkit.java
index 6975700e..1bfd4d6d 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/title/Title_Bukkit.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/title/Title_Bukkit.java
@@ -2,11 +2,10 @@ package com.leonardobishop.quests.bukkit.hook.title;
import org.bukkit.entity.Player;
-public class Title_Bukkit implements Title {
-
- // new title function with timings
+public class Title_Bukkit implements QuestsTitle {
+ @SuppressWarnings("deprecation")
@Override
- public void sendTitle(Player player, String message, String submessage) {
- player.sendTitle(message, submessage, 10, 100, 10);
+ public void sendTitle(Player player, String title, String subtitle) {
+ player.sendTitle(title, subtitle, 10, 100, 10);
}
}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/title/Title_BukkitNoTimings.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/title/Title_BukkitNoTimings.java
index 64c91ea6..5c1a14b5 100644
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/title/Title_BukkitNoTimings.java
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/title/Title_BukkitNoTimings.java
@@ -2,12 +2,10 @@ package com.leonardobishop.quests.bukkit.hook.title;
import org.bukkit.entity.Player;
-public class Title_BukkitNoTimings implements Title {
-
- // this one is for 1.8, 1.9 and 1.10 where there was no timings method
+public class Title_BukkitNoTimings implements QuestsTitle {
+ @SuppressWarnings("deprecation")
@Override
- public void sendTitle(Player player, String message, String submessage) {
- player.sendTitle(message, submessage);
+ public void sendTitle(Player player, String title, String subtitle) {
+ player.sendTitle(title, subtitle);
}
-
}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/title/Title_Nothing.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/title/Title_Nothing.java
new file mode 100644
index 00000000..76bf7241
--- /dev/null
+++ b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/title/Title_Nothing.java
@@ -0,0 +1,10 @@
+package com.leonardobishop.quests.bukkit.hook.title;
+
+import org.bukkit.entity.Player;
+
+public class Title_Nothing implements QuestsTitle {
+ @Override
+ public void sendTitle(Player player, String title, String subtitle) {
+ // no compatible title impl found
+ }
+}
diff --git a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/title/Title_Other.java b/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/title/Title_Other.java
deleted file mode 100644
index cdc8d7bf..00000000
--- a/bukkit/src/main/java/com/leonardobishop/quests/bukkit/hook/title/Title_Other.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package com.leonardobishop.quests.bukkit.hook.title;
-
-import org.bukkit.entity.Player;
-
-public class Title_Other implements Title {
-
- @Override
- public void sendTitle(Player player, String message, String submessage) {
- // title function does not exist
- }
-}