200 lines
5.7 KiB
JavaScript
200 lines
5.7 KiB
JavaScript
|
ModAPI.require("network");
|
||
|
ModAPI.require("player");
|
||
|
var packetsOnTodoList = [];
|
||
|
var blinking = false;
|
||
|
ModAPI.addEventListener("event", (ev) => {
|
||
|
if (
|
||
|
blinking &&
|
||
|
ev.event.startsWith("sendpacket") &&
|
||
|
ev.event !== "sendpacketkeepalive"
|
||
|
) {
|
||
|
ev.data.preventDefault = true;
|
||
|
packetsOnTodoList.push(ev);
|
||
|
}
|
||
|
});
|
||
|
function blinkOn() {
|
||
|
if (blinking === true) {
|
||
|
return;
|
||
|
}
|
||
|
blinking = true;
|
||
|
ModAPI.displayToChat({ msg: "Blink activated." });
|
||
|
}
|
||
|
function blinkOff() {
|
||
|
if (blinking === false) {
|
||
|
return;
|
||
|
}
|
||
|
blinking = false;
|
||
|
ModAPI.displayToChat({ msg: "Blink deactivated." });
|
||
|
packetsOnTodoList.forEach((ev) => {
|
||
|
var data = ev.data;
|
||
|
switch (ev.event) {
|
||
|
case "sendpacketanimation":
|
||
|
ModAPI.network.sendPacketAnimation();
|
||
|
break;
|
||
|
case "sendpacketentityaction":
|
||
|
ModAPI.network.sendPacketEntityAction({
|
||
|
entityId: data.entityID,
|
||
|
action: data.action,
|
||
|
auxData: data.auxData,
|
||
|
});
|
||
|
break;
|
||
|
case "sendpacketinput":
|
||
|
ModAPI.network.sendPacketInput({
|
||
|
strafeSpeed: data.strafeSpeed,
|
||
|
forwardSpeed: data.forwardSpeed,
|
||
|
jumping: data.jumping,
|
||
|
sneaking: data.sneaking,
|
||
|
});
|
||
|
break;
|
||
|
case "sendpacketclosewindow":
|
||
|
ModAPI.network.sendPacketCloseWindow({ windowId: data.windowId });
|
||
|
break;
|
||
|
case "sendpacketclickwindow":
|
||
|
ModAPI.network.sendPacketClickWindow({
|
||
|
windowId: data.windowId,
|
||
|
slotId: data.slotId,
|
||
|
usedButton: data.usedButton,
|
||
|
mode: data.mode,
|
||
|
clickedItemRef: data.clickedItem ? data.clickedItem.getRef() : {},
|
||
|
actionNumber: data.actionNumber,
|
||
|
});
|
||
|
break;
|
||
|
case "sendpacketconfirmtransaction":
|
||
|
ModAPI.network.sendPacketConfirmTransaction({
|
||
|
windowId: data.windowId,
|
||
|
uid: data.uid,
|
||
|
accepted: data.accepted,
|
||
|
});
|
||
|
break;
|
||
|
case "sendpacketchatmessage":
|
||
|
ModAPI.network.sendPacketConfirmTransaction({
|
||
|
messageIn: data.message,
|
||
|
});
|
||
|
break;
|
||
|
case "sendpacketuseentity":
|
||
|
ModAPI.network.sendPacketUseEntity({
|
||
|
entityId: data.entityId,
|
||
|
action: data.action,
|
||
|
});
|
||
|
break;
|
||
|
case "sendpacketplayerposition":
|
||
|
ModAPI.network.sendPacketPlayerPosition({
|
||
|
posX: data.x,
|
||
|
posY: data.y,
|
||
|
posZ: data.z,
|
||
|
isOnGround: data.onGround,
|
||
|
});
|
||
|
case "sendpacketplayerlook":
|
||
|
ModAPI.network.sendPacketPlayerLook({
|
||
|
playerYaw: data.yaw,
|
||
|
playerPitch: data.pitch,
|
||
|
isOnGround: data.onGround,
|
||
|
});
|
||
|
break;
|
||
|
case "sendpacketplayerposlook":
|
||
|
ModAPI.network.sendPacketPlayerPosLook({
|
||
|
playerX: data.x,
|
||
|
playerY: data.y,
|
||
|
playerZ: data.z,
|
||
|
playerYaw: data.yaw,
|
||
|
playerPitch: data.pitch,
|
||
|
isOnGround: data.onGround,
|
||
|
});
|
||
|
case "sendpacketplayer":
|
||
|
ModAPI.network.sendPacketPlayer({
|
||
|
isOnGround: data.onGround,
|
||
|
});
|
||
|
break;
|
||
|
case "sendpacketplayerdigging":
|
||
|
ModAPI.network.sendPacketPlayerDigging({
|
||
|
pos: data.position,
|
||
|
facing: data.facing,
|
||
|
action: data.status,
|
||
|
});
|
||
|
break;
|
||
|
case "sendpacketplayerblockplacement":
|
||
|
ModAPI.network.sendPacketPlayerBlockPlacement({
|
||
|
stackRef: data.stack.getRef(),
|
||
|
posRef: data.position.getRef(),
|
||
|
placedBlockDirectionIn: data.placedBlockDirection,
|
||
|
facingXIn: data.facingX,
|
||
|
facingYIn: data.facingY,
|
||
|
facingZIn: data.facingZ,
|
||
|
});
|
||
|
break;
|
||
|
case "sendpackethelditemchange":
|
||
|
ModAPI.network.sendPacketHeldItemChange({
|
||
|
slotId: data.slotId,
|
||
|
});
|
||
|
break;
|
||
|
case "sendpacketcreativeinventoryaction":
|
||
|
ModAPI.network.sendPacketCreativeInventoryAction({
|
||
|
slotId: data.slotId,
|
||
|
stackRef: data.stack.getRef(),
|
||
|
});
|
||
|
break;
|
||
|
case "sendpacketenchantitem":
|
||
|
ModAPI.network.sendPacketEnchantItem({
|
||
|
windowId: data.windowId,
|
||
|
button: data.button,
|
||
|
});
|
||
|
break;
|
||
|
case "sendpacketupdatesign":
|
||
|
ModAPI.network.sendPacketUpdateSign({
|
||
|
pos: data.pos,
|
||
|
lines: data.lines,
|
||
|
});
|
||
|
break;
|
||
|
case "sendpacketplayerabilities":
|
||
|
ModAPI.network.sendPacketPlayerAbilities({
|
||
|
capabilitiesRef: ModAPI.player.capabilities.getRef(),
|
||
|
});
|
||
|
break;
|
||
|
case "sendpackettabcomplete":
|
||
|
ModAPI.network.sendPacketTabComplete({
|
||
|
msg: data.message,
|
||
|
target: data.targetBlock,
|
||
|
});
|
||
|
break;
|
||
|
case "sendpacketclientsettings":
|
||
|
ModAPI.network.sendPacketClientSettings({
|
||
|
lang: data.lang,
|
||
|
view: data.view,
|
||
|
chatVisibility: data.chatVisibility,
|
||
|
enableColors: data.enableColors,
|
||
|
modelPartFlags: data.modelPartFlags,
|
||
|
});
|
||
|
break;
|
||
|
case "sendpacketclientstatus":
|
||
|
ModAPI.network.sendPacketClientStatus({
|
||
|
status: data.status,
|
||
|
});
|
||
|
break;
|
||
|
case "sendpacketspectate":
|
||
|
ModAPI.network.sendPacketSpectate({
|
||
|
uuid: data.id,
|
||
|
});
|
||
|
break;
|
||
|
case "sendpacketresourcepackstatus":
|
||
|
ModAPI.network.sendPacketResourcePackStatus({
|
||
|
hash: data.hash,
|
||
|
status: data.status,
|
||
|
});
|
||
|
break;
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
});
|
||
|
packetsOnTodoList = [];
|
||
|
}
|
||
|
ModAPI.addEventListener("sendchatmessage", (ev) => {
|
||
|
if (ev.message.toLowerCase().trim() === ".blinkon") {
|
||
|
ev.preventDefault = true;
|
||
|
blinkOn();
|
||
|
}
|
||
|
if (ev.message.toLowerCase().trim() === ".blinkoff") {
|
||
|
ev.preventDefault = true;
|
||
|
blinkOff();
|
||
|
}
|
||
|
});
|