JEI写样板对于配方书签上传失败时回退到玩家背包
This commit is contained in:
parent
45fdf749b1
commit
9fe3336107
|
|
@ -32,16 +32,15 @@ public class UploadEncodedPatternToProviderC2SPacket {
|
||||||
ServerPlayer player = ctx.getSender();
|
ServerPlayer player = ctx.getSender();
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
|
|
||||||
// Prefer pending Ctrl+Q pattern upload when present.
|
|
||||||
if (ProviderUploadUtil.hasPendingCtrlQPattern(player)) {
|
if (ProviderUploadUtil.hasPendingCtrlQPattern(player)) {
|
||||||
if (ProviderUploadUtil.uploadPendingCtrlQPattern(player, msg.providerId)) {
|
if (ProviderUploadUtil.uploadPendingCtrlQPattern(player, msg.providerId)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
ProviderUploadUtil.returnPendingCtrlQPatternToInventory(player);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player.containerMenu instanceof PatternEncodingTermMenu menu) {
|
if (player.containerMenu instanceof PatternEncodingTermMenu menu) {
|
||||||
// 1) providerId >= 0: byId mode from access terminal
|
|
||||||
// 2) providerId < 0: index mode, index = -1 - providerId
|
|
||||||
if (msg.providerId >= 0) {
|
if (msg.providerId >= 0) {
|
||||||
ProviderUploadUtil.uploadFromEncodingMenuToProvider(player, menu, msg.providerId);
|
ProviderUploadUtil.uploadFromEncodingMenuToProvider(player, menu, msg.providerId);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -145,8 +145,10 @@ public class CreateAndUploadPatternC2SPacket {
|
||||||
boolean uploaded = MatrixUploadUtil.uploadPatternToMatrix(player, pattern, grid);
|
boolean uploaded = MatrixUploadUtil.uploadPatternToMatrix(player, pattern, grid);
|
||||||
|
|
||||||
if (!uploaded) {
|
if (!uploaded) {
|
||||||
// 上传失败,退还空白样板到网络
|
// 上传失败,将样板塞到背包。
|
||||||
refundBlankPattern(player, grid);
|
if (!(player.getInventory().add(pattern))) {
|
||||||
|
player.drop(pattern.copy(),false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
ctx.setPacketHandled(true);
|
ctx.setPacketHandled(true);
|
||||||
|
|
|
||||||
|
|
@ -281,6 +281,21 @@ public final class ProviderUploadUtil {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 将 pending Ctrl+Q 样板回退到玩家背包;若背包已满则掉落在地上。
|
||||||
|
*/
|
||||||
|
public static boolean returnPendingCtrlQPatternToInventory(ServerPlayer player) {
|
||||||
|
if (player == null) return false;
|
||||||
|
ItemStack pending = getPendingCtrlQPattern(player);
|
||||||
|
if (pending.isEmpty()) return false;
|
||||||
|
|
||||||
|
clearPendingCtrlQUpload(player);
|
||||||
|
if (!player.getInventory().add(pending.copy())) {
|
||||||
|
player.drop(pending.copy(), false);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 列出玩家无线终端网络中的可用 provider,顺序与负数索引上传保持一致。
|
* 列出玩家无线终端网络中的可用 provider,顺序与负数索引上传保持一致。
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user