눈샘
대표칭호 없음
Nun_saem 1a94a50033f242cea79056282d346f86
이해도 | 입문자 |
---|---|
게임버전 (JE) | 관련없음 |
게임버전 (BE) | 관련없음 |
static Map<String, Map<Integer, Map<Integer,Object>>> shopdata;
여기 Object에 ItemStack 저장합니다.
저장할 때는 이 코드를 사용하고
try (FileOutputStream fos = new FileOutputStream(Shop); OutputStreamWriter osw = new OutputStreamWriter(fos, StandardCharsets.UTF_8)){ Yaml yaml = new Yaml(); yaml.dump(shopdata, osw); } catch (IOException e) { e.printStackTrace(); }
로드할 때는
try (FileInputStream fis = new FileInputStream(Shop); InputStreamReader isr = new InputStreamReader(fis, StandardCharsets.UTF_8)) { Yaml yaml = new Yaml(); shopdata = yaml.load(isr); } catch (IOException e) { e.printStackTrace(); } if (shopdata==null){ shopdata = new HashMap<>(); }
이 코드를 사용합니다. 저장할 때는 괜찮은데,
로드만 하면
이런 오류 발생하면서 Shop 의 내용물 또한 날아가고 shopdata에 데이터가 들어가지도 않습니다.
아무래도 ItemStack를 불러오는 데에서 오류가 나는 것 같은데, 어떻게 하면 이 오류를 해결할 수 있을까 싶어 올려봅니다.
nms 관련은 아니라 크게 상관은 없을 것 같지만 Paper를 사용하고 있고 마인크래프트 버전은 1.20.6 기준입니다.
노을넴
2024.06.09굳이 ItemStack을 yaml로 저장해야 할 필요가 있나욘?
눈샘
2024.06.09딱히 없어요! 다른 방법을 몰라서 이러는거라 ㅠㅠ 쉬운 방법 있으면 좋죠!
노을넴
2024.06.09그러면 NBT로 저장해보세욘
눈샘
2024.06.09아 itemstack 대신 nbt 를 저장하라는 의미에요?
노을넴
2024.06.09itemstack의 nbt를 저장하라는 뜻이에욘
눈샘
2024.06.09넵 감사합니다!