-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Очень умни itemscroller. Работает через миксины, других способов я не нашел.
Не забудьте зарегать эвент:
MinecraftForge.EVENT_BUS.register(new InputHandler());
Задержек на клик нет, и проверки работы модуля тоже, сделаете сами т.к. код зависит от базы
MixinContainerScreen.java:
@Mixin(ContainerScreen.class)
public abstract class MixinContainerScreen {
[USER=8455]@Shadow[/USER]
[USER=346354]@FINAL[/USER]
protected Container menu;
[USER=8455]@Shadow[/USER]
protected abstract boolean isHovering(Slot p_195362_1_, double p_195362_2_, double p_195362_4_);
[USER=8455]@Shadow[/USER]
protected abstract void slotClicked(Slot p_184098_1_, int p_184098_2_, int p_184098_3_, ClickType p_184098_4_);
@Inject(method = "render", at = @At("HEAD"))
private void render(MatrixStack p_230430_1_, int p_230430_2_, int p_230430_3_, float p_230430_4_, CallbackInfo ci) {
if (InputHandler.isMousePressed(GLFW.GLFW_MOUSE_BUTTON_LEFT) && InputHandler.isKeyPressed(GLFW.GLFW_KEY_LEFT_SHIFT)) {
for (int i1 = 0; i1 < this.menu.slots.size(); ++i1) {
Slot slot = this.menu.slots.get(i1);
if (this.isHovering(slot, (double) p_230430_2_, (double) p_230430_3_) && slot.isActive()) {
this.slotClicked(slot, slot.index, 0, ClickType.QUICK_MOVE);
}
}
}
}
}
InputHandler.java:
public class InputHandler {
private static final HashMap<Integer, Boolean> mouse = new HashMap<>();
private static final HashMap<Integer, Boolean> keys = new HashMap<>();
@SubscribeEvent
public void onMouseInput(InputEvent.MouseInputEvent event) {
mouse.put(event.getButton(), (event.getAction() == 1));
}
@SubscribeEvent
public void onKeyInput(InputEvent.KeyInputEvent event) {
if(event.getAction() == 2)
return;
keys.put(event.getKey(), (event.getAction() == 1));
}
public static boolean isMousePressed(int key) {
if(!mouse.containsKey(key))
return false;
return mouse.get(key);
}
public static boolean isKeyPressed(int key) {
if(!keys.containsKey(key))
return false;
return keys.get(key);
}
}
MinecraftForge.EVENT_BUS.register(new InputHandler());
Задержек на клик нет, и проверки работы модуля тоже, сделаете сами т.к. код зависит от базы