PlayerEvents.tick(event => {
let player = event.getPlayer();
let playerAttachedData = player.getData();
let tickCount = event.getServer().getTickCount();
if (playerAttachedData.get("lotteryState")) {
let countMax = playerAttachedData.get("poolCountMax");
let count = playerAttachedData.get("count");
let itemShow = itemShowFunc(player,count,countMax);
if (countMax - count <= 3) {
if (tickCount % 10 == 0){
if (count >= countMax){
playerAttachedData.add("lotteryState",false);
let poolList = poolItemList.find(value => Object.keys(value).includes(player.getUuid().toString()))[player.getUuid()];
player.give(Item.of(poolList[count-2]));
player.playNotifySound("minecraft:entity.player.levelup","players",1,1)
paintHide(player)
poolList = [];
}else{
paintShow(player,itemShow.oneItemId,itemShow.twoItemId,itemShow.threeItemId);
playerAttachedData.add("count", count + 1)
player.playNotifySound("minecraft:entity.experience_orb.pickup","players",1,1)
}
}
} else if (countMax - count <= 10) {
if (tickCount % 5 == 0){
paintShow(player,itemShow.oneItemId,itemShow.twoItemId,itemShow.threeItemId);
playerAttachedData.add("count", count + 1)
player.playNotifySound("minecraft:entity.experience_orb.pickup","players",1,2)
}
} else {
paintShow(player,itemShow.oneItemId,itemShow.twoItemId,itemShow.threeItemId);
playerAttachedData.add("count", count + 1)
player.playNotifySound("minecraft:entity.experience_orb.pickup","players",1,2)
}
}
})
function itemShowFunc(player,count,max) {
let uuid = player.getUuid();
let poolList = poolItemList.find(value => Object.keys(value).includes(uuid.toString()))[uuid];
let two_item = poolList[Number(count)];
let one_item = poolList[count - 1 == -1 ? max - 1 : count - 1];
let three_item;
if (count - 2 == -2) {
three_item = poolList[max - 2]
} else if (count - 2 == -1) {
three_item = poolList[max - 1]
} else if (count - 2 >= 0) {
three_item = poolList[count - 2]
}
return {
oneItemId:one_item,
twoItemId:two_item,
threeItemId: three_item
}
}
function paintHide(player) {
player.paint({
item_one: {
visible: false
}, item_two: {
visible: false
}, item_three: {
visible: false
}
})
}
function paintShow(player, one_item, two_item, three_item) {
player.paint({
item_one: {
type: "item",
item: two_item,
visible: true,
w: raffleTicketConfig.sideItemShowSize,
h: raffleTicketConfig.sideItemShowSize,
x: "$screenW/2-" + raffleTicketConfig.itemShowInterval,
y: "$screenH/2+sin(time()*0.5)*$screenH/32",
},
item_two: {
type: "item",
item: one_item,
visible: true,
w: raffleTicketConfig.middleItemShowSize,
h: raffleTicketConfig.middleItemShowSize,
x: "$screenW/2",
y: "$screenH/2+sin(time()*0.5)*$screenH/32",
},
item_three: {
type: "item",
item: three_item,
visible: true,
w: raffleTicketConfig.sideItemShowSize,
h: raffleTicketConfig.sideItemShowSize,
x: "$screenW/2+" + raffleTicketConfig.itemShowInterval,
y: "$screenH/2+sin(time()*0.5)*$screenH/32",
}
})
}