This commit is contained in:
Ajneb97 2021-12-04 10:10:57 -03:00
parent b7648cb5ca
commit 1a2e7044fe
8 changed files with 103 additions and 13 deletions

View File

@ -1,5 +1,5 @@
main: mc.ajneb97.MineChess
version: 1.12.1
version: 1.13.1
name: MineChess
api-version: 1.13
softdepend: [Multiverse-Core,HolographicDisplays,PlaceholderAPI]

View File

@ -20,7 +20,7 @@ public class Tablero {
Material m = null;
if(color.equals("b")) {
if(Bukkit.getVersion().contains("1.13") || Bukkit.getVersion().contains("1.14") || Bukkit.getVersion().contains("1.15")
|| Bukkit.getVersion().contains("1.16") || Bukkit.getVersion().contains("1.17")) {
|| Bukkit.getVersion().contains("1.16") || Bukkit.getVersion().contains("1.17") || Bukkit.getVersion().contains("1.18")) {
m = Material.valueOf("WHITE_WOOL");
}else {
m = Material.WOOL;
@ -37,7 +37,7 @@ public class Tablero {
l.clone().add(2,0,2).getBlock().setType(m);
}else {
if(Bukkit.getVersion().contains("1.13") || Bukkit.getVersion().contains("1.14") || Bukkit.getVersion().contains("1.15")
|| Bukkit.getVersion().contains("1.16") || Bukkit.getVersion().contains("1.17")) {
|| Bukkit.getVersion().contains("1.16") || Bukkit.getVersion().contains("1.17") || Bukkit.getVersion().contains("1.18")) {
m = Material.valueOf("GRAY_WOOL");
l.getBlock().setType(m);
l.clone().add(1,0,0).getBlock().setType(m);

View File

@ -16,7 +16,7 @@ public class ActionBarAPI
public static void sendActionBar(Player player, String message)
{
if(Bukkit.getVersion().contains("1.16") || Bukkit.getVersion().contains("1.17")) {
if(Bukkit.getVersion().contains("1.16") || Bukkit.getVersion().contains("1.17") || Bukkit.getVersion().contains("1.18")) {
TextComponent text_component = new TextComponent(message);
player.spigot().sendMessage(ChatMessageType.ACTION_BAR, text_component);
return;

View File

@ -8,6 +8,7 @@ import java.lang.invoke.MethodHandles;
import java.lang.invoke.MethodType;
import java.lang.reflect.Array;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.Arrays;
@ -31,7 +32,7 @@ import java.util.concurrent.ThreadLocalRandom;
*/
public class FastBoard {
private static final Map<Class<?>, Field[]> PACKETS = new HashMap<>(8);
private static final Map<Class<?>, Field[]> PACKETS = new HashMap<>(8);
private static final String[] COLOR_CODES = Arrays.stream(ChatColor.values())
.map(Object::toString)
.toArray(String[]::new);
@ -87,6 +88,9 @@ public class FastBoard {
Field playerConnectionField = Arrays.stream(entityPlayerClass.getFields())
.filter(field -> field.getType().isAssignableFrom(playerConnectionClass))
.findFirst().orElseThrow(NoSuchFieldException::new);
Method sendPacketMethod = Arrays.stream(playerConnectionClass.getMethods())
.filter(m -> m.getParameterCount() == 1 && m.getParameterTypes()[0] == packetClass)
.findFirst().orElseThrow(NoSuchMethodException::new);
MESSAGE_FROM_STRING = lookup.unreflect(craftChatMessageClass.getMethod("fromString", String.class));
CHAT_COMPONENT_CLASS = FastReflection.nmsClass("network.chat", "IChatBaseComponent");
@ -95,7 +99,7 @@ public class FastBoard {
RESET_FORMATTING = FastReflection.enumValueOf(CHAT_FORMAT_ENUM, "RESET", 21);
PLAYER_GET_HANDLE = lookup.findVirtual(craftPlayerClass, "getHandle", MethodType.methodType(entityPlayerClass));
PLAYER_CONNECTION = lookup.unreflectGetter(playerConnectionField);
SEND_PACKET = lookup.findVirtual(playerConnectionClass, "sendPacket", MethodType.methodType(void.class, packetClass));
SEND_PACKET = lookup.unreflect(sendPacketMethod);
PACKET_SB_OBJ = FastReflection.findPacketConstructor(packetSbObjClass, lookup);
PACKET_SB_DISPLAY_OBJ = FastReflection.findPacketConstructor(packetSbDisplayObjClass, lookup);
PACKET_SB_SCORE = FastReflection.findPacketConstructor(packetSbScoreClass, lookup);
@ -414,7 +418,7 @@ public class FastBoard {
}
if (checkMax && line >= COLOR_CODES.length - 1) {
throw new IllegalArgumentException("Line number is too high: " + this.lines.size());
throw new IllegalArgumentException("Line number is too high: " + line);
}
}

View File

@ -49,7 +49,7 @@ public class TitleAPI implements Listener {
public static void sendTitle(Player player, Integer fadeIn, Integer stay, Integer fadeOut, String title, String subtitle) {
TitleSendEvent titleSendEvent = new TitleSendEvent(player, title, subtitle);
if(Bukkit.getVersion().contains("1.13") || Bukkit.getVersion().contains("1.14") || Bukkit.getVersion().contains("1.15")
|| Bukkit.getVersion().contains("1.16") || Bukkit.getVersion().contains("1.17")) {
|| Bukkit.getVersion().contains("1.16") || Bukkit.getVersion().contains("1.17") || Bukkit.getVersion().contains("1.18")) {
if(title.isEmpty()) {
title = " ";
}

View File

@ -38,7 +38,7 @@ public class InventarioCoronacion implements Listener {
//Torre
if(Bukkit.getVersion().contains("1.13") || Bukkit.getVersion().contains("1.14") || Bukkit.getVersion().contains("1.15")
|| Bukkit.getVersion().contains("1.16") || Bukkit.getVersion().contains("1.17")) {
|| Bukkit.getVersion().contains("1.16") || Bukkit.getVersion().contains("1.17") || Bukkit.getVersion().contains("1.18")) {
item = new ItemStack(Material.valueOf("PLAYER_HEAD"),1);
}else {
item = new ItemStack(Material.SKULL_ITEM,1,(short) 3);
@ -51,7 +51,7 @@ public class InventarioCoronacion implements Listener {
//Caballo
if(Bukkit.getVersion().contains("1.13") || Bukkit.getVersion().contains("1.14") || Bukkit.getVersion().contains("1.15")
|| Bukkit.getVersion().contains("1.16") || Bukkit.getVersion().contains("1.17")) {
|| Bukkit.getVersion().contains("1.16") || Bukkit.getVersion().contains("1.17") || Bukkit.getVersion().contains("1.18")) {
item = new ItemStack(Material.valueOf("PLAYER_HEAD"),1);
}else {
item = new ItemStack(Material.SKULL_ITEM,1,(short) 3);
@ -64,7 +64,7 @@ public class InventarioCoronacion implements Listener {
//Alfil
if(Bukkit.getVersion().contains("1.13") || Bukkit.getVersion().contains("1.14") || Bukkit.getVersion().contains("1.15")
|| Bukkit.getVersion().contains("1.16") || Bukkit.getVersion().contains("1.17")) {
|| Bukkit.getVersion().contains("1.16") || Bukkit.getVersion().contains("1.17") || Bukkit.getVersion().contains("1.18")) {
item = new ItemStack(Material.valueOf("PLAYER_HEAD"),1);
}else {
item = new ItemStack(Material.SKULL_ITEM,1,(short) 3);
@ -82,7 +82,7 @@ public class InventarioCoronacion implements Listener {
//Reina
if(Bukkit.getVersion().contains("1.13") || Bukkit.getVersion().contains("1.14") || Bukkit.getVersion().contains("1.15")
|| Bukkit.getVersion().contains("1.16") || Bukkit.getVersion().contains("1.17")) {
|| Bukkit.getVersion().contains("1.16") || Bukkit.getVersion().contains("1.17") || Bukkit.getVersion().contains("1.18")) {
item = new ItemStack(Material.valueOf("PLAYER_HEAD"),1);
}else {
item = new ItemStack(Material.SKULL_ITEM,1,(short) 3);

View File

@ -25,6 +25,7 @@ import mc.ajneb97.versiones.V1_16;
import mc.ajneb97.versiones.V1_16_R2;
import mc.ajneb97.versiones.V1_16_R3;
import mc.ajneb97.versiones.V1_17;
import mc.ajneb97.versiones.V1_18;
import mc.ajneb97.versiones.V1_8_R1;
import mc.ajneb97.versiones.V1_8_R2;
import mc.ajneb97.versiones.V1_8_R3;
@ -68,7 +69,8 @@ public class Utilidades {
}
meta.addItemFlags(ItemFlag.HIDE_ATTRIBUTES,ItemFlag.HIDE_ENCHANTS,ItemFlag.HIDE_UNBREAKABLE,ItemFlag.HIDE_POTION_EFFECTS);
if(Bukkit.getVersion().contains("1.15") || Bukkit.getVersion().contains("1.16") || Bukkit.getVersion().contains("1.17")) {
if(Bukkit.getVersion().contains("1.15") || Bukkit.getVersion().contains("1.16") || Bukkit.getVersion().contains("1.17")
|| Bukkit.getVersion().contains("1.18")) {
meta.setUnbreakable(true);
}else {
meta.spigot().setUnbreakable(true); //SOLO FUNCIONA CON SPIGOT
@ -80,6 +82,10 @@ public class Utilidades {
public static void setSkullBlock(Location l, String id, String textura, int rot) {
String packageName = Bukkit.getServer().getClass().getPackage().getName();
if(packageName.contains("1_18")){
V1_18 u = new V1_18();
u.setSkullBlock(l,id,textura,rot);
}
if(packageName.contains("1_17")){
V1_17 u = new V1_17();
u.setSkullBlock(l,id,textura,rot);
@ -148,6 +154,10 @@ public class Utilidades {
public static void generarParticula(String particle, Location loc, float xOffset, float yOffset, float zOffset, float speed, int count, Player player) {
String packageName = Bukkit.getServer().getClass().getPackage().getName();
if(packageName.contains("1_18")){
V1_18 u = new V1_18();
u.generarParticula(particle, loc, xOffset, yOffset, zOffset, speed, count, player);
}
if(packageName.contains("1_17")){
V1_17 u = new V1_17();
u.generarParticula(particle, loc, xOffset, yOffset, zOffset, speed, count, player);
@ -245,6 +255,11 @@ public class Utilidades {
public static ItemStack getCabeza(ItemStack item, String id,String textura){
String packageName = Bukkit.getServer().getClass().getPackage().getName();
if(packageName.contains("1_18")){
V1_18 u = new V1_18();
ItemStack stack = u.getCabeza(item,id,textura);
return stack;
}
if(packageName.contains("1_17")){
V1_17 u = new V1_17();
ItemStack stack = u.getCabeza(item,id,textura);

View File

@ -0,0 +1,71 @@
package mc.ajneb97.versiones;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import org.bukkit.Bukkit;
import org.bukkit.Color;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.Particle;
import org.bukkit.SkullType;
import org.bukkit.block.BlockFace;
import org.bukkit.block.Skull;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.SkullMeta;
import com.mojang.authlib.GameProfile;
import com.mojang.authlib.properties.Property;
public class V1_18 {
public void generarParticula(String particle, Location loc, float xOffset, float yOffset, float zOffset, float speed, int count, Player player){
player.spawnParticle(Particle.valueOf(particle),loc,count,xOffset,yOffset,zOffset,speed);
}
@SuppressWarnings("deprecation")
public void setSkullBlock(Location locBloque,String id,String textura,int rot) {
locBloque.getBlock().setType(Material.valueOf("PLAYER_HEAD"));
Skull skullBlock = (Skull) locBloque.getBlock().getState();
//skullBlock.setSkullType(SkullType.PLAYER);
if(rot == 8) {
skullBlock.setRotation(BlockFace.NORTH);
}
GameProfile profile = new GameProfile(UUID.randomUUID(), null);
profile.getProperties().put("textures", new Property("textures", textura));
try {
Field profileField = skullBlock.getClass().getDeclaredField("profile");
profileField.setAccessible(true);
profileField.set(skullBlock, profile);
}catch (NoSuchFieldException | IllegalAccessException e) { e.printStackTrace(); }
skullBlock.update();
}
public ItemStack getCabeza(ItemStack item, String id,String textura) {
if (textura.isEmpty()) return item;
SkullMeta skullMeta = (SkullMeta) item.getItemMeta();
GameProfile profile = new GameProfile(UUID.randomUUID(), null);
profile.getProperties().put("textures", new Property("textures", textura));
try {
Method mtd = skullMeta.getClass().getDeclaredMethod("setProfile", GameProfile.class);
mtd.setAccessible(true);
mtd.invoke(skullMeta, profile);
} catch (IllegalAccessException | InvocationTargetException | NoSuchMethodException ex) {
ex.printStackTrace();
}
item.setItemMeta(skullMeta);
return item;
}
}