분야 | 플러그인 |
---|
net.minecraft.server.v1_16_R3.ItemStack NMS_TARGET_ITEM = CraftItemStack.asNMSCopy(TARGET_ITEM); net.minecraft.server.v1_16_R3.Item NMS_TARGET_ITEM_DATA = NMS_TARGET_ITEM.getItem(); Multimap<AttributeBase, net.minecraft.server.v1_16_R3.AttributeModifier> N = NMS_TARGET_ITEM_DATA.getAttributesForSlot(EnumItemSlot.MAINHAND);
구글링 하다보니 NMS의 ItemStack에서 getItem()메소드를 이용해서 AttributeModifier를 가져오는 방법이 있던데 제가 봤던 방법은 NMS v1_12_R1에서 Multimap<String, AttributeModifier>이었는데 NMS 1_16_v3에서는 Multimap<AttributeBase, AttributeModifier>이더라구요.
v1_12_R1에서는 String타입으로 Attribute의 키값으로 이용해서 가져오면 된다고 봤는데 v1_16_R3 AttributeBase는 어떻게 사용해야하는지 모르겠네요.
혹시 전달이 잘 안됬을까봐 제가 봤던 코드 링크도 남깁니다.
superoreo
14 일 전.getName() 메소드만 없애면 될거같아요 안되시면 다시 말씀주세요 클래스파일 뜯어서 확인해볼게요
superoreo
14 일 전APSODE
14 일 전진짜진짜 존나 감사합니다 ㅠㅠㅠㅠㅠ
덕분에 며칠째 막혀있던 부분 구현할수 있을것 같아요 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
근데 nms는 직접 IDE에서 디컴파일된 코드 보면서 역할을 유추할수밖에 없는건가요..?
superoreo
14 일 전님이 원하시는 부분을 찾으시려면 그거를 하셔야죠...?
일단 이거 맞으면 다행이구 spigot-1.16.5.jar 압축푸신다음에 net.minecraft.server.~ 들어가셔서 찾으신담에 뜯어보시면 어느 정도 유추는 되실거에요
APSODE
13 일 전그렇군요 알려주셔서 감사해요!