mirror of
https://github.com/songoda/UltimateTimber.git
synced 2024-09-29 22:27:36 +02:00
The beginning
This commit is contained in:
parent
0aad72bc2c
commit
cece22e247
@ -2,7 +2,11 @@ package com.songoda.ultimatetimber;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
import com.songoda.ultimatetimber.adapter.VersionAdapter;
|
||||||
|
import com.songoda.ultimatetimber.adapter.current.CurrentAdapter;
|
||||||
|
import com.songoda.ultimatetimber.adapter.legacy.LegacyAdapter;
|
||||||
import com.songoda.ultimatetimber.utils.Metrics;
|
import com.songoda.ultimatetimber.utils.Metrics;
|
||||||
|
import com.songoda.ultimatetimber.utils.NMSUtil;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.World;
|
import org.bukkit.World;
|
||||||
@ -19,18 +23,13 @@ import com.songoda.ultimatetimber.treefall.TreeFallAnimation;
|
|||||||
import com.songoda.ultimatetimber.treefall.TreeFallListener;
|
import com.songoda.ultimatetimber.treefall.TreeFallListener;
|
||||||
import com.songoda.ultimatetimber.utils.Methods;
|
import com.songoda.ultimatetimber.utils.Methods;
|
||||||
|
|
||||||
/*
|
|
||||||
Note: In this plugin, I have called the act of a tree falling over with pseudo-physics "toppling over". This is reflected
|
|
||||||
in the documentation, config files and variable names.
|
|
||||||
PS: MagmaGuy was here
|
|
||||||
*/
|
|
||||||
|
|
||||||
public class UltimateTimber extends JavaPlugin {
|
public class UltimateTimber extends JavaPlugin {
|
||||||
|
|
||||||
private final static CommandSender console = Bukkit.getConsoleSender();
|
private static final String prefix = "&8[&6UltimateTimber&8]";
|
||||||
|
private static final CommandSender console = Bukkit.getConsoleSender();
|
||||||
private static UltimateTimber INSTANCE;
|
private static UltimateTimber INSTANCE;
|
||||||
|
|
||||||
private final String prefix = "&8[&6UltimateTimber&8]";
|
private VersionAdapter adapter;
|
||||||
private Set<String> validWorlds = new HashSet<>();
|
private Set<String> validWorlds = new HashSet<>();
|
||||||
private List<UUID> isNotChopping = new ArrayList<>();
|
private List<UUID> isNotChopping = new ArrayList<>();
|
||||||
|
|
||||||
@ -40,14 +39,17 @@ public class UltimateTimber extends JavaPlugin {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
|
|
||||||
if (!checkVersion()) return;
|
|
||||||
|
|
||||||
INSTANCE = this;
|
INSTANCE = this;
|
||||||
|
|
||||||
console.sendMessage(Methods.formatText("&a============================="));
|
console.sendMessage(Methods.formatText("&a============================="));
|
||||||
console.sendMessage(Methods.formatText("&7" + this.getDescription().getName() + " " + this.getDescription().getVersion() + " by &5Songoda <3&7!"));
|
console.sendMessage(Methods.formatText("&7" + this.getDescription().getName() + " " + this.getDescription().getVersion() + " by &5Songoda <3&7!"));
|
||||||
console.sendMessage(Methods.formatText("&7Action: &aEnabling&7..."));
|
console.sendMessage(Methods.formatText("&7Action: &aEnabling&7..."));
|
||||||
|
|
||||||
|
/*
|
||||||
|
Set up version adapter
|
||||||
|
*/
|
||||||
|
this.setupAdapter();
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Register the main event that handles toppling down trees
|
Register the main event that handles toppling down trees
|
||||||
*/
|
*/
|
||||||
@ -86,6 +88,9 @@ public class UltimateTimber extends JavaPlugin {
|
|||||||
ultimatetimber.setExecutor(commandHandler);
|
ultimatetimber.setExecutor(commandHandler);
|
||||||
ultimatetimber.setTabCompleter(commandHandler);
|
ultimatetimber.setTabCompleter(commandHandler);
|
||||||
|
|
||||||
|
/*
|
||||||
|
Set up metrics
|
||||||
|
*/
|
||||||
new Metrics(this);
|
new Metrics(this);
|
||||||
|
|
||||||
console.sendMessage(Methods.formatText("&a============================="));
|
console.sendMessage(Methods.formatText("&a============================="));
|
||||||
@ -115,20 +120,12 @@ public class UltimateTimber extends JavaPlugin {
|
|||||||
return prefix;
|
return prefix;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean checkVersion() {
|
private void setupAdapter() {
|
||||||
int workingVersion = 13;
|
if (NMSUtil.getVersionNumber() > 12) {
|
||||||
int currentVersion = Integer.parseInt(Bukkit.getServer().getClass()
|
this.adapter = new CurrentAdapter();
|
||||||
.getPackage().getName().split("\\.")[3].split("_")[1]);
|
} else {
|
||||||
|
this.adapter = new LegacyAdapter();
|
||||||
if (currentVersion < workingVersion) {
|
|
||||||
Bukkit.getScheduler().scheduleSyncDelayedTask(this, () -> {
|
|
||||||
console.sendMessage("");
|
|
||||||
console.sendMessage(String.format("%sYou installed the 1.%s only version of %s on a 1.%s server. Since you are on the wrong version we disabled the plugin for you. Please install correct version to continue using %s.", ChatColor.RED, workingVersion, this.getDescription().getName(), currentVersion, this.getDescription().getName()));
|
|
||||||
console.sendMessage("");
|
|
||||||
}, 20L);
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean toggleChopping(Player player) {
|
public boolean toggleChopping(Player player) {
|
||||||
@ -142,4 +139,8 @@ public class UltimateTimber extends JavaPlugin {
|
|||||||
return !this.isNotChopping.contains(player.getUniqueId());
|
return !this.isNotChopping.contains(player.getUniqueId());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public VersionAdapter getAdapter() {
|
||||||
|
return this.adapter;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,14 @@
|
|||||||
|
package com.songoda.ultimatetimber.adapter;
|
||||||
|
|
||||||
|
import jdk.nashorn.internal.ir.Block;
|
||||||
|
import org.bukkit.inventory.ItemStack;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
public interface VersionAdapter {
|
||||||
|
|
||||||
|
Set<ItemStack> getBlockDrops(Block block);
|
||||||
|
|
||||||
|
void applyToolDurability(Set<Block> blocks, ItemStack tool);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
package com.songoda.ultimatetimber.adapter.current;
|
||||||
|
|
||||||
|
import com.songoda.ultimatetimber.adapter.VersionAdapter;
|
||||||
|
|
||||||
|
public class CurrentAdapter implements VersionAdapter {
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,7 @@
|
|||||||
|
package com.songoda.ultimatetimber.adapter.legacy;
|
||||||
|
|
||||||
|
import com.songoda.ultimatetimber.adapter.VersionAdapter;
|
||||||
|
|
||||||
|
public class LegacyAdapter implements VersionAdapter {
|
||||||
|
|
||||||
|
}
|
@ -10,6 +10,6 @@ public interface TimberHook {
|
|||||||
/**
|
/**
|
||||||
* Applies the hook
|
* Applies the hook
|
||||||
*/
|
*/
|
||||||
public void apply(Player player, HashSet<Block> treeBlocks) throws Exception;
|
void apply(Player player, HashSet<Block> treeBlocks) throws Exception;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
22
src/main/java/com/songoda/ultimatetimber/utils/NMSUtil.java
Normal file
22
src/main/java/com/songoda/ultimatetimber/utils/NMSUtil.java
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
package com.songoda.ultimatetimber.utils;
|
||||||
|
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
|
||||||
|
public class NMSUtil {
|
||||||
|
|
||||||
|
public static String getVersion() {
|
||||||
|
String name = Bukkit.getServer().getClass().getPackage().getName();
|
||||||
|
return name.substring(name.lastIndexOf('.') + 1) + ".";
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getVersionNumber() {
|
||||||
|
String name = getVersion().substring(3);
|
||||||
|
return Integer.valueOf(name.substring(0, name.length() - 4));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getVersionReleaseNumber() {
|
||||||
|
String NMSVersion = getVersion();
|
||||||
|
return Integer.valueOf(NMSVersion.substring(NMSVersion.length() - 2).replace(".", ""));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -3,7 +3,7 @@ version: maven-version-number
|
|||||||
author: Songoda
|
author: Songoda
|
||||||
main: com.songoda.ultimatetimber.UltimateTimber
|
main: com.songoda.ultimatetimber.UltimateTimber
|
||||||
api-version: 1.13
|
api-version: 1.13
|
||||||
softdepend: [Multiverse-Core, mcMMO, Jobs]
|
softdepend: [mcMMO, Jobs]
|
||||||
commands:
|
commands:
|
||||||
ultimatetimber:
|
ultimatetimber:
|
||||||
description: Reloads the configuration file
|
description: Reloads the configuration file
|
||||||
|
Loading…
Reference in New Issue
Block a user