9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-26 10:29:20 +00:00

Merge pull request #202 from Xiao-MoMi/dev

0.0.55.1
This commit is contained in:
XiaoMoMi
2025-05-30 18:14:20 +08:00
committed by GitHub
6 changed files with 29 additions and 9 deletions

View File

@@ -82,8 +82,12 @@ public class BukkitCompatibilityManager implements CompatibilityManager {
}
// WorldEdit
if (this.isPluginEnabled("FastAsyncWorldEdit")) {
this.initFastAsyncWorldEditHook();
logHook("FastAsyncWorldEdit");
try {
this.initFastAsyncWorldEditHook();
logHook("FastAsyncWorldEdit");
} catch (Exception e) {
this.plugin.logger().warn("[Compatibility] Failed to initialize FastAsyncWorldEdit hook", e);
}
} else if (this.isPluginEnabled("WorldEdit")) {
this.initWorldEditHook();
logHook("WorldEdit");
@@ -172,10 +176,28 @@ public class BukkitCompatibilityManager implements CompatibilityManager {
}
}
@SuppressWarnings("all")
private void initFastAsyncWorldEditHook() {
Plugin fastAsyncWorldEdit = Bukkit.getPluginManager().getPlugin("FastAsyncWorldEdit");
String version = VersionHelper.isPaper() ? fastAsyncWorldEdit.getPluginMeta().getVersion() : fastAsyncWorldEdit.getDescription().getVersion();
if (!this.fastAsyncWorldEditVersionCheck(new int[]{2, 13, 0}, version)) {
this.plugin.logger().warn("[Compatibility] FastAsyncWorldEdit version is too old, please update to 2.13.0 or newer");
}
new WorldEditBlockRegister(BukkitBlockManager.instance(), true);
}
private boolean fastAsyncWorldEditVersionCheck(int[] target, String version) {
String cleanVersion = version.split("-")[0];
String[] parts = cleanVersion.split("\\.");
for (int i = 0; i < target.length; i++) {
if (i >= parts.length) return false;
int currentPart = Integer.parseInt(parts[i]);
if (currentPart > target[i]) return true;
if (currentPart < target[i]) return false;
}
return true;
}
private void initWorldEditHook() {
WorldEditBlockRegister weBlockRegister = new WorldEditBlockRegister(BukkitBlockManager.instance(), false);
try {

View File

@@ -2083,9 +2083,9 @@ public class PacketConsumers {
try {
FriendlyByteBuf buf = event.getBuffer();
ItemBuildContext context = ItemBuildContext.of((BukkitServerPlayer) user);
int slot = buf.readVarInt();
Object friendlyBuf = FastNMS.INSTANCE.constructor$FriendlyByteBuf(buf);
ItemStack itemStack = FastNMS.INSTANCE.method$FriendlyByteBuf$readItem(friendlyBuf);
int slot = buf.readVarInt();
BukkitItemManager.instance().s2c(itemStack, context).ifPresent((newItemStack) -> {
event.setChanged(true);
buf.clear();
@@ -2290,7 +2290,7 @@ public class PacketConsumers {
private static BukkitNetworkManager.Handlers simpleAddEntityHandler(EntityPacketHandler handler) {
return (user, event) -> {
FriendlyByteBuf buf = event.getBuffer();
user.entityPacketHandlers().put(buf.readVarInt(), handler);
user.entityPacketHandlers().putIfAbsent(buf.readVarInt(), handler);
};
}
}

View File

@@ -3604,7 +3604,7 @@ public class Reflections {
public static final Field field$FallingBlockEntity$blockState = requireNonNull(
ReflectionUtils.getDeclaredField(
clazz$FallingBlockEntity, clazz$BlockState, 0
clazz$FallingBlockEntity, clazz$BlockState, VersionHelper.isOrAbove1_21_5() ? 1 : 0
)
);

View File

@@ -225,7 +225,7 @@ public class DropboxHost implements ResourcePackHost {
try (HttpClient client = HttpClient.newBuilder().proxy(this.proxy).build()) {
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://alist.nn.ci/tool/dropbox/callback"))
.uri(URI.create("https://api.dropboxapi.com/oauth2/token"))
.header("Content-Type", "application/x-www-form-urlencoded")
.header("Authorization", authHeader)
.POST(HttpRequest.BodyPublishers.ofString(

View File

@@ -189,7 +189,6 @@ public class OneDriveHost implements ResourcePackHost {
try (HttpClient client = HttpClient.newBuilder().proxy(this.proxy).build()) {
String formData = "client_id=" + URLEncoder.encode(this.clientId, StandardCharsets.UTF_8) +
"&client_secret=" + URLEncoder.encode(this.clientSecret, StandardCharsets.UTF_8) +
"&redirect_uri=" + URLEncoder.encode("https://alist.nn.ci/tool/onedrive/callback", StandardCharsets.UTF_8) +
"&refresh_token=" + URLEncoder.encode(this.refreshToken.left(), StandardCharsets.UTF_8) +
"&grant_type=refresh_token" +
"&scope=Files.ReadWrite.All+offline_access";

View File

@@ -6,7 +6,6 @@
"target": "@env(DEFAULT)",
"compatibilityLevel": "JAVA_21",
"server": [
"BlocksMixin",
"ItemStackMixin"
"BlocksMixin"
]
}