Skip to content

Commit

Permalink
2.9.6 - Make NMS support 1.20.5/6, 1.21
Browse files Browse the repository at this point in the history
  • Loading branch information
VoChiDanh committed Jul 2, 2024
1 parent e87f4fb commit 5a1a31e
Show file tree
Hide file tree
Showing 15 changed files with 578 additions and 26 deletions.
8 changes: 1 addition & 7 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>net.danh</groupId>
<artifactId>bSoul</artifactId>
<version>2.9.5</version>
<version>2.9.6-SNAPSHOT</version>
<packaging>jar</packaging>

<name>bSoul</name>
Expand Down Expand Up @@ -112,12 +112,6 @@
<artifactId>bstats-bukkit</artifactId>
<version>3.0.2</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.github.D-x-Z</groupId>
<artifactId>DCore</artifactId>
<version>9aa329d44e</version>
<scope>compile</scope>
</dependency><!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
Expand Down
8 changes: 4 additions & 4 deletions src/main/java/net/danh/bsoul/Cmd/Soul.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package net.danh.bsoul.Cmd;

import net.danh.bsoul.Commands.CMDBase;
import net.danh.bsoul.Manager.Data;
import net.danh.bsoul.Manager.Resources;
import net.danh.dcore.Commands.CMDBase;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender;
Expand All @@ -15,10 +15,10 @@
import java.util.List;
import java.util.Objects;

import static net.danh.bsoul.Manager.Player.sendConsoleMessage;
import static net.danh.bsoul.Manager.Player.sendPlayerMessage;
import static net.danh.bsoul.Manager.Resources.getlanguagefile;
import static net.danh.dcore.Random.Number.getInt;
import static net.danh.dcore.Utils.Player.sendConsoleMessage;
import static net.danh.dcore.Utils.Player.sendPlayerMessage;
import static net.danh.bsoul.Random.Number.getInt;

public class Soul extends CMDBase {

Expand Down
76 changes: 76 additions & 0 deletions src/main/java/net/danh/bsoul/Commands/CMDBase.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
package net.danh.bsoul.Commands;

import org.bukkit.command.*;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

import java.util.List;
import java.util.Objects;

/**
* @version 1.0
*/
public abstract class CMDBase implements CommandExecutor, TabCompleter {

protected JavaPlugin core;

/**
* @param core Plugin main class
* @param name label
*/
public CMDBase(JavaPlugin core, String name) {
this.core = core;
PluginCommand pluginCommand = core.getCommand(name);
Objects.requireNonNull(pluginCommand).setExecutor(this);
pluginCommand.setTabCompleter(this);
}

/**
* @param p Player
* @param args args
*/
public abstract void playerexecute(Player p, String[] args);

/**
* @param c ConsoleCommandSender
* @param args args
*/
public abstract void consoleexecute(ConsoleCommandSender c, String[] args);

/**
* @param sender Player/Console
* @param command cmd
* @param label label
* @param args args
* @return /label args ...
*/
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if (sender instanceof Player) {
playerexecute((Player) sender, args);
}
if (sender instanceof ConsoleCommandSender) {
consoleexecute((ConsoleCommandSender) sender, args);
}
return true;
}

/**
* @param sender sender
* @param cmd cmd
* @param label label
* @param args args
* @return tab
*/
@Override
public List<String> onTabComplete(CommandSender sender, Command cmd, String label, String[] args) {
return TabComplete(sender, args);
}

/**
* @param sender sender
* @param args args
* @return tab
*/
public abstract List<String> TabComplete(CommandSender sender, String[] args);
}
4 changes: 2 additions & 2 deletions src/main/java/net/danh/bsoul/Events/MobDeath.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@
import java.util.Random;

import static net.danh.bsoul.Manager.Debug.debug;
import static net.danh.bsoul.Manager.Player.sendPlayerMessage;
import static net.danh.bsoul.Manager.Resources.*;
import static net.danh.dcore.Random.Number.getRandomInt;
import static net.danh.dcore.Utils.Player.sendPlayerMessage;
import static net.danh.bsoul.Random.Number.getRandomInt;

public class MobDeath implements Listener {

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/net/danh/bsoul/Events/PlayerDeath.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package net.danh.bsoul.Events;

import net.danh.bsoul.Manager.Chat;
import net.danh.bsoul.Manager.Data;
import net.danh.bsoul.Manager.Resources;
import net.danh.bsoul.bSoul;
import net.danh.dcore.Utils.Chat;
import org.bukkit.Bukkit;
import org.bukkit.Material;
import org.bukkit.World;
Expand All @@ -20,9 +20,9 @@
import java.util.Random;
import java.util.concurrent.atomic.AtomicInteger;

import static net.danh.bsoul.Manager.Player.sendPlayerMessage;
import static net.danh.bsoul.Manager.Resources.getconfigfile;
import static net.danh.bsoul.Manager.Resources.getlanguagefile;
import static net.danh.dcore.Utils.Player.sendPlayerMessage;

public class PlayerDeath implements Listener {

Expand Down
32 changes: 32 additions & 0 deletions src/main/java/net/danh/bsoul/Manager/Chat.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package net.danh.bsoul.Manager;

import org.bukkit.ChatColor;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
* @version 1.0
*/
public class Chat {

public static String colorize(String message) {
Pattern pattern = Pattern.compile("#[a-fA-F0-9]{6}");
Matcher matcher = pattern.matcher(message);
while (matcher.find()) {
String hexCode = message.substring(matcher.start(), matcher.end());
String replaceSharp = hexCode.replace('#', 'x');

char[] ch = replaceSharp.toCharArray();
StringBuilder builder = new StringBuilder();
for (char c : ch) {
builder.append("&").append(c);
}

message = message.replace(hexCode, builder.toString());
matcher = pattern.matcher(message);
}
return ChatColor.translateAlternateColorCodes('&', message);
}
}

3 changes: 1 addition & 2 deletions src/main/java/net/danh/bsoul/Manager/Debug.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package net.danh.bsoul.Manager;

import net.danh.bsoul.bSoul;
import net.danh.dcore.DCore;

import java.util.Collections;
import java.util.List;
Expand Down Expand Up @@ -35,7 +34,7 @@ public static void update295() {

public static void debug(String message) {
if (Resources.getconfigfile().getBoolean("SETTINGS.DEBUG")) {
DCore.dCoreLog(message);
bSoul.getInstance().getLogger().warning(message);
}
}
}
6 changes: 2 additions & 4 deletions src/main/java/net/danh/bsoul/Manager/Item.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
package net.danh.bsoul.Manager;

import net.danh.dcore.NMS.NMSAssistant;
import net.danh.dcore.Utils.Chat;
import net.danh.dcore.Utils.Items;
import net.danh.bsoul.NMS.NMSAssistant;
import org.bukkit.Material;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;
Expand All @@ -11,8 +9,8 @@
import java.util.Objects;
import java.util.stream.Collectors;

import static net.danh.bsoul.Manager.Items.makeItem;
import static net.danh.bsoul.Manager.Resources.getconfigfile;
import static net.danh.dcore.Utils.Items.makeItem;

public class Item {

Expand Down
144 changes: 144 additions & 0 deletions src/main/java/net/danh/bsoul/Manager/Items.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
package net.danh.bsoul.Manager;

import org.bukkit.Material;
import org.bukkit.enchantments.Enchantment;
import org.bukkit.inventory.ItemFlag;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;

import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

/**
* @version 1.0
*/
public class Items {

/**
* @param input List Lore
* @return input with color code
*/
public static List<String> Lore(List<String> input) {
List<String> output = new ArrayList<>();
for (String string : input) {
output.add(Chat.colorize(string));
}
return output;
}

/**
* @param material Material
* @param data Data (For legacy version 1.12.x and below)
* @param amount int
* @param glow true/false
* @param HideFlag true/false
* @param Unbreakable true/false
* @param name Item name
* @param lore Item lore
* @return ItemStack
*/
public static ItemStack makeItem(Material material, Short data, Integer amount, Boolean glow, Boolean HideFlag, Boolean Unbreakable, String name, List<String> lore) {
ItemStack itemStack;
if (data >= 0) {
itemStack = new ItemStack(material, amount);
ItemMeta itemMeta = itemStack.getItemMeta();
Objects.requireNonNull(itemMeta).setDisplayName(Chat.colorize(name));
if (lore != null) {
itemMeta.setLore(Lore(lore));
}
if (glow) {
itemMeta.addEnchant(Enchantment.DURABILITY, 1, true);
itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
}
if (HideFlag) {
itemMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES, ItemFlag.HIDE_DESTROYS, ItemFlag.HIDE_PLACED_ON, ItemFlag.HIDE_POTION_EFFECTS, ItemFlag.HIDE_UNBREAKABLE);
}
if (Unbreakable) {
itemMeta.setUnbreakable(true);
}
itemStack.setItemMeta(itemMeta);
} else {
itemStack = new ItemStack(material, amount, data);
ItemMeta itemMeta = itemStack.getItemMeta();
Objects.requireNonNull(itemMeta).setDisplayName(Chat.colorize(name));
if (lore != null) {
itemMeta.setLore(Lore(lore));
}
if (glow) {
itemMeta.addEnchant(Enchantment.DURABILITY, 1, true);
itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
}
if (HideFlag) {
itemMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES, ItemFlag.HIDE_DESTROYS, ItemFlag.HIDE_PLACED_ON, ItemFlag.HIDE_POTION_EFFECTS, ItemFlag.HIDE_UNBREAKABLE);
}
if (Unbreakable) {
itemMeta.setUnbreakable(true);
}
itemStack.setItemMeta(itemMeta);
}
return itemStack;
}

/**
* @param material Material
* @param data Data (For legacy version 1.13 below), null if you use 1.13+
* @param amount int
* @param glow true/false
* @param HideFlag true/false
* @param Unbreakable true/false
* @param name Item name
* @param lore Item lore
* @return ItemStack
*/
public static ItemStack makeItem(Material material, Short data, Integer amount, Boolean glow, Boolean HideFlag, Boolean Unbreakable, String name, String... lore) {
ItemStack itemStack;
if (data == null) {
itemStack = new ItemStack(material, amount);
ItemMeta itemMeta = itemStack.getItemMeta();
Objects.requireNonNull(itemMeta).setDisplayName(Chat.colorize(name));
if (lore != null) {
List<String> l = new ArrayList<>();
for (String lores : lore) {
l.add(Chat.colorize(lores));
}
itemMeta.setLore(Lore(l));
}
if (glow) {
itemMeta.addEnchant(Enchantment.DURABILITY, 1, true);
itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
}
if (HideFlag) {
itemMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES, ItemFlag.HIDE_DESTROYS, ItemFlag.HIDE_PLACED_ON, ItemFlag.HIDE_POTION_EFFECTS, ItemFlag.HIDE_UNBREAKABLE);
}
if (Unbreakable) {
itemMeta.setUnbreakable(true);
}
itemStack.setItemMeta(itemMeta);
} else {
itemStack = new ItemStack(material, amount, data);
ItemMeta itemMeta = itemStack.getItemMeta();
Objects.requireNonNull(itemMeta).setDisplayName(Chat.colorize(name));
if (lore != null) {
List<String> l = new ArrayList<>();
for (String lores : lore) {
l.add(Chat.colorize(lores));
}
itemMeta.setLore(l);
}
if (glow) {
itemMeta.addEnchant(Enchantment.DURABILITY, 1, true);
itemMeta.addItemFlags(ItemFlag.HIDE_ENCHANTS);
}
if (HideFlag) {
itemMeta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES, ItemFlag.HIDE_DESTROYS, ItemFlag.HIDE_PLACED_ON, ItemFlag.HIDE_POTION_EFFECTS, ItemFlag.HIDE_UNBREAKABLE);
}
if (Unbreakable) {
itemMeta.setUnbreakable(true);
}
itemStack.setItemMeta(itemMeta);
}
return itemStack;
}

}
Loading

0 comments on commit 5a1a31e

Please sign in to comment.