개인 자료란 (JE)

  서버 커뮤니티

Profile whguswo 대표칭호 없음
Profile

질문하기 Java

자바 알고리즘 코딩 관련 질문

2023.01.19 조회 수 71 추천 수 0
이해도 초보자 
게임버전 (JE) 1.19.1 
게임버전 (BE) 관련없음 

커스텀 인벤토리를 열고 init 함수에서 테두리에 파란 유리판을 깔아둔뒤 시간이 지남에 따라 빨간색 유리판으로 변하게 하고싶습니다.

package auction;

import org.bukkit.*;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.InventoryHolder;
import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta;

import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class auctionInventory implements InventoryHolder {
    private static Inventory inv;
    static int[] borderIndex = {0, 1, 2, 3, 4, 5, 6, 7, 8, 17, 26, 25, 24, 23, 22, 21, 20, 19, 18, 9};
    ItemStack border = new ItemStack(Material.BLUE_STAINED_GLASS_PANE, 1);
    static ItemStack redBorder = new ItemStack(Material.RED_STAINED_GLASS_PANE, 1);
    private static ScheduledFuture future;

    public auctionInventory(Player player) {
        inv = Bukkit.createInventory(this, 27, "경매장");
        init(player);
    }

    private void init(Player player) {

        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 9; j++) {
                if(i == 0 || i==2 || j == 0 || j == 8) {
                    inv.setItem(i * 9 + j, border);
                }
            }
        }

        ItemStack leftMoney = new ItemStack(Material.GOLD_INGOT);
        ItemMeta leftMoneyItemMeta = leftMoney.getItemMeta();
        leftMoneyItemMeta.setDisplayName(ChatColor.GOLD +"잔액: $" + userMap.getMoney(player.getName()));
        leftMoney.setItemMeta(leftMoneyItemMeta);
        inv.setItem(14, leftMoney);

        ItemStack pro = product.getProduct();
        inv.setItem(12, pro);
    }

    @Override
    public Inventory getInventory() {
        return inv;
    }

}

5초 동안에 borderIndex 안에있는 20개의 슬롯이 순서대로 빨간 슬롯으로 바뀌는 코드를 구현하고 싶은데 어떻게 해야할지 모르겠습니다.

4개의 댓글

0reo
2023.01.19
private static int j = 0;

private void init(Player player) {
    for (int i = 0; i < 3; i++) {
        for (int j = 0; j < 9; j++) {
            if (i == 0 || i == 2 || j == 0 || j == 8) {
                inv.setItem(i * 9 + j, border);
            }
        }
    }
    ItemStack leftMoney = new ItemStack(Material.GOLD_INGOT);
    ItemMeta leftMoneyItemMeta = leftMoney.getItemMeta();
    leftMoneyItemMeta.setDisplayName(ChatColor.GOLD +"잔액: $" + userMap.getMoney(player.getName()));
    leftMoney.setItemMeta(leftMoneyItemMeta);
    inv.setItem(14, leftMoney);

    ItemStack pro = product.getProduct();
    inv.setItem(12, pro);
    j = 0;
    Bukkit.getScheduler().runTaskTimer(Main.getPlugin(Main.class), () -> {
        if (inv.getItem(j).getType().equals(Material.BLUE_STAINED_GLASS_PANE)) {
            inv.setItem(j, new ItemStack(Material.RED_STAINED_GLASS_PANE));
        }
        j++;
    }, 0, 20 * 5);
}
0reo
2023.01.19
@0reo

테스트안해봄 버그나면 고쳐쓰세요

whguswo
2023.01.20
@0reo

항상 감사합니닷!

Vencodor
2023.01.22

해결하셨나요? 다른 분께서 올려주신 코드는 원하시는 방향대로 작동하지 않을 것 같아서요!

뉴스 및 창작물
/files/thumbnails/576/775/003/262x150.crop.jpg?20240426232553

아티클

이달의 블록: 단단한 진흙

학교가기싫다

2024-04-26

0

/files/thumbnails/115/774/003/262x150.crop.jpg?20240428135129

업데이트

마인크래프트 1.20.5 정식 업데이트

학교가기싫다

2024-04-24

0

/files/thumbnails/762/770/003/262x150.crop.jpg?20240418073724

레드스톤

T.B.H (고민중독) | 노트블럭 버전 | NoteBlock Cover [한국어 영어 중국어 가사 추가]

노트블럭전문가

2024-04-18

0

/files/thumbnails/218/767/003/262x150.crop.jpg?20240412130213

레드스톤

우리의 꿈 - 원피스 오프닝

노트블럭전문가

2024-04-12

0

/files/thumbnails/505/766/003/262x150.crop.jpg?20240411122306

레드스톤

기동전사 건담 수성의 마녀 | 노트블럭 커버 1

노트블럭전문가

2024-04-11

1