Реализация обмена между игроками

Версия Minecraft
1.7.10
1,189
31
182
Хотелось бы посоветоваться у знающих здесь форумчан насчет обмена между двумя игроками.
Как реализовать контейнер со слотами у двух игроков сразу? У каждого имеется доступ к своей части контейнера (к слотам своим короче).
Не особо понимаю как это сделать, это практически единственная вещь которую я не могу понять в плане реализации, кто нибудь подскажет?
 
Решение
У меня партер хранится в IEEP.
То есть я в контейнере делаю так:
Java:
EntityPlayer other = IEEP.forPlayer(player).getOther();
if(other != null){
    InventoryBasic otherInv = IEEP.forPlayer(other).getTradeInventory();
    addSlot(otherInv, ...);
}
1,189
31
182
а как мне достать в контейнере инвентарь партнера?
получается, записывать в поле класса контейнера два игрока
Java:
public EntityPlayer senderObmen;
public EntityPlayer accepterObmen;
А потом достать у каждого игрока свое IEEP и через него манипулить слотами, контейнером и т.п?
 

tox1cozZ

aka Agravaine
8,455
598
2,892
У меня партер хранится в IEEP.
То есть я в контейнере делаю так:
Java:
EntityPlayer other = IEEP.forPlayer(player).getOther();
if(other != null){
    InventoryBasic otherInv = IEEP.forPlayer(other).getTradeInventory();
    addSlot(otherInv, ...);
}
 
7,099
324
1,510
Разве не будет правильней хранить в какой-то мапе по ключу двух игроков объект состояния обмена? Ведь состояние обмена не принадлежит ни одному из игроков. У каждого игрока открывать контейнер с доступными ему слотами
 
1,189
31
182

tox1cozZ

aka Agravaine
8,455
598
2,892
Разве не будет правильней хранить в какой-то мапе по ключу двух игроков объект состояния обмена? Ведь состояние обмена не принадлежит ни одному из игроков. У каждого игрока открывать контейнер с доступными ему слотами
Есть инициатор обмена же. От его лица уже все и происходит.
не совсем понял это
Да что непонятного? Говорю же, хранишь партнера в IEEP, в контейнере достаешь партнера из IEEP.
 
7,099
324
1,510
Просто не создавай слоты для других индексов инвентаря обмена, вместо этого рендерь руками. Или юзай баккит, там можно отменять взаимодействие со слотом
 
7,099
324
1,510
Что-то тебя вообще не туда понесло))) Вон два метода выше полностью запрещают взаимодействие со слотом)
А точно? Я видел много дюпов с модами связанными со слотами всяких фильтров, которые заполнялись без траты предмета в курсоре, но разными способами могли быть извлечены
 

tox1cozZ

aka Agravaine
8,455
598
2,892
А точно? Я видел много дюпов с модами связанными со слотами всяких фильтров, которые заполнялись без траты предмета в курсоре, но разными способами могли быть извлечены
Ниразу не был никаких дюпов. Если уж совсем параноя - перепредели slotClick, добавь проверку на свой слот и верни нулл.
 
7,099
324
1,510
Я свою паранойю удовлетворяю, отрисовывая предметы в тех местах, где слоты должны быть, вместо добавления самих слотов. Так 100% нельзя ниче забрать, ибо неоткуда
 
Сверху