1.15.2 Inconsistent Slot Machine Mechanic output

Discussion in 'Spigot Plugin Development' started by Stellrow, Mar 29, 2020.

  1. So i'm trying to set the outcome if a slot machine by setting a item on a certain slot and spinning it a certain amount of times,the only problem is,the result is inconsistem sometimes it does hit it,and sometimes not,how would i do it?
    //Preparing the rolling and tracking the rolls
    Code (Text):
    public void rollItems(Inventory inv,Integer row,Integer rolls) {
               
                new BukkitRunnable() {
                    int toCount = 0;
                    @Override
                    public void run() {
                        if(toCount>=rolls) {
                            this.cancel();
                        }
                        toCount++;
                        switch(row) {
                        case 1:{
                            swapItems(inv,2,11,20,29,38,47);
                        }
                        case 2:{
                            swapItems(inv,4,13,22,31,40,49);
                        }
                        case 3:{
                            swapItems(inv,6,15,24,33,42,51);
                        }
                        }
                    }
                   
                }.runTaskTimerAsynchronously(pl, 0, 10);
        }
    Method swapping the items in a line,top to bottom
    Code (Text):
    public void swapItems(Inventory inv,Integer slot1,Integer slot2,Integer slot3,Integer slot4,Integer slot5,Integer slot6) {
                    new BukkitRunnable() {

                        @Override
                        public void run() {
                            ItemStack slot1_ = inv.getItem(slot1);
                            ItemStack slot2_ = inv.getItem(slot2);
                            ItemStack slot3_ = inv.getItem(slot3);
                            ItemStack slot4_ = inv.getItem(slot4);
                            ItemStack slot5_ = inv.getItem(slot5);
                            ItemStack slot6_ = inv.getItem(slot6);
                           
                           
                            inv.setItem(slot1, slot6_);
                            inv.setItem(slot2, slot1_);
                            inv.setItem(slot3, slot2_);
                            inv.setItem(slot4, slot3_);
                            inv.setItem(slot5, slot4_);
                            inv.setItem(slot6, slot5_);
                           
                        }
                       
                    }.runTaskAsynchronously(pl);
                   
        }
    Problem is theres either 2 rolls needed on a row,sometimes 4,3 and so on,why would this happen?