• Я зарабатываю 100 000 RUB / месяц на этом сайте!

    А знаешь как? Я всего-лишь публикую (создаю темы), а админ мне платит. Трачу деньги на мороженое, робуксы и сервера в Minecraft. А ещё на паль из Китая. 

    Хочешь так же? Пиши и узнавай условия: https://t.me/alex_redact
    Реклама: https://t.me/yougame_official

Вопрос Как узнать только что выловленную сущность? (1.21.4)

Новичок
Новичок
Статус
Оффлайн
Регистрация
21 Авг 2025
Сообщения
1
Реакции
0
Я пытаюсь написать скрипт авторыбалки с помощью minescript (
Пожалуйста, авторизуйтесь для просмотра ссылки.
) у него есть возможность обращаться к public методам и полям классов (что-то слышал ещё про возможность обратиться к protected полям, но не методам с помощью Java reflection, но у меня пока не вышло) с помощью lib_java (
Пожалуйста, авторизуйтесь для просмотра ссылки.
). Пример кода, который распознаёт за что зацепился поплавок:
Python:
Expand Collapse Copy
import minescript
from lib_java import JavaClass, JavaObject, java_class_map, java_member_map
import sys

sys.stdout.reconfigure(encoding='utf-8')

# `minecraft_class_name` is the runtime class name of the main Minecraft class which may be obfuscated.
minecraft_client_class_name = minescript.version_info().minecraft_class_name

 
if minecraft_client_class_name == "net.minecraft.class_310":
  java_class_map.update({
    "net.minecraft.client.Minecraft": "net.minecraft.class_310",
  })
  java_member_map.update({
    # net.minecraft.client.Minecraft
    "getInstance": "method_1551",
    "player": "field_1724",

    # net.minecraft.entity.player.PlayerEntity
    "fishhook": "field_7513",

    # net.minecraft.entity.projectile.FishingBobberEntity
    "getHookedEntity": "method_26957",
  })

MinecraftClient = JavaClass("net.minecraft.client.Minecraft")
minecraft_client = MinecraftClient.getInstance()
player = minecraft_client.player

def get_hooked_entity():
  fishhook = player.fishhook
  if fishhook is None:
    return
  hooked_entity = fishhook.getHookedEntity()
  if not hooked_entity  is None:
    print(hooked_entity)

while True:
  get_hooked_entity()

Моя проблема заключается в том что я не могу однозначно определить какую сущность я только что выловил и которая летит ко мне в инвентарь. В плане что на сервере много воруют на авторыбалке и у меня есть алгоритм взаимодействия который должен сработать в том случае если мы поняли что у нас своровали предмет, но как однозначно точно понять что у нас своровали именно только что выловленную рыбу я не понимаю, не вижу способа корректно получить информацию о только что появившемся Entity от рыбалки, который заспавнился именно из-за меня.

Я пытался использовать:
1) информацию о положение поплавка и в момент как мы вынимаем поплавок определять самый близкий Entity и считать что мы выловили именно его, это легко контрится если рядом с поплавком набросать мусора и тогда можно дальше воровать
2) информацию о количестве свободных слотов персонажа и если не изменилось, то понимать что у нас что-то своровали, но это тоже легко контрится набрасывание мусора в инвентарь во время ловли

Помогите пожалуйста разобраться возможно ли однозначно определить предмет которsй я только что выловил и летит ко мне в инвентарь (до того как он попал ко мне в инвентарь), чтобы следить за тем попал ли он ко мне в инвентарь за отведённое время и если нет, то реагировать
 
Назад
Сверху Снизу