[1.6.4] Как получить мир игрока без события?

Статус
В этой теме нельзя размещать новые ответы.
675
2
Доброго времени суток.
Нужно на пустом месте(без события) получить мир, в котором находится игрок.

Код:
            EntityPlayerMP player = (EntityPlayerMP) NetServerHandler.getPlayer();
                
            if (player.worldObj.getSaveHandler().getWorldDirectoryName() == "Test")

Но в таком случае придется делать getPlayer статиком, а как меня учили: статик - это плохо. 
Прошу помощи :)
 
127
0
Try4W написал(а):
Доброго времени суток.
Нужно на пустом месте(без события) получить мир, в котором находится игрок.

Код:
            EntityPlayerMP player = (EntityPlayerMP) NetServerHandler.getPlayer();
                
            if (player.worldObj.getSaveHandler().getWorldDirectoryName() == "Test")

Но в таком случае придется делать getPlayer статиком, а как меня учили: статик - это плохо. 
Прошу помощи :)
Minecraft mc = Minecraft.getMinecraft().thePlayer.worldObj
 
771
5
Evgeniy написал(а):
Try4W написал(а):
Доброго времени суток.
Нужно на пустом месте(без события) получить мир, в котором находится игрок.

Код:
            EntityPlayerMP player = (EntityPlayerMP) NetServerHandler.getPlayer();
                
            if (player.worldObj.getSaveHandler().getWorldDirectoryName() == "Test")

Но в таком случае придется делать getPlayer статиком, а как меня учили: статик - это плохо. 
Прошу помощи :)
Minecraft mc = Minecraft.getMinecraft().thePlayer.worldObj
Ну это клиентский игрок)
 
675
2
Evgeniy написал(а):
Minecraft mc = Minecraft.getMinecraft().thePlayer.worldObj
Спасибо, помогли.


Код:
Minecraft.getMinecraft().thePlayer.worldObj.getSaveHandler().getWorldDirectoryName()
[merge_posts_bbcode]Добавлено: 25.03.2014 22:21:49[/merge_posts_bbcode]

f1rSt1k написал(а):
Ну это клиентский игрок)

Разве?     
public EntityClientPlayerMP thePlayer;
Он вроде и клиентский, и сетевой :)
-
Лол, магия какая-то. Буквально пол часа назад на сервере и клиенте все отлично работало, а сейчас мне
и
Minecraft.getMinecraft().theWorld.getSaveHandler().getWorldDirectoryName()
и
Minecraft.getMinecraft().thePlayer.worldObj.getSaveHandler().getWorldDirectoryName()
возвращают: none

Попытался так:

Код:
                Object pl = Minecraft.getMinecraft().thePlayer;
                
                 EntityPlayer player = (EntityPlayer) pl;
                
                System.out.println(player.worldObj.getSaveHandler().getWorldDirectoryName());

Вывод: none

В чем проблема?
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
ДА В ТОМ, ЧТО ОН КЛИЕНТСКИЙ.
[merge_posts_bbcode]Добавлено: 25.03.2014 20:56:21[/merge_posts_bbcode]

НАДО ПРОСТО НЕ ТУПИТЬ И НЕ ВЕСТИСЬ НА НАЗВАНИЯ.

[merge_posts_bbcode]Добавлено: 25.03.2014 20:56:51[/merge_posts_bbcode]

И ВООБЩЕ ВСЕ, ЧТО MINECRAFT.GETMINECRAFT() - КЛИЕНТСКОЕ.
 
675
2
anti344 написал(а):
И ВООБЩЕ ВСЕ, ЧТО MINECRAFT.GETMINECRAFT() - КЛИЕНТСКОЕ.
Пускай даже так, мне не нужно ничего выполнять на стороне сервера, а просто в зависимости от мира игрока отключать рендер мини-карты.
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
Проблемы плагина. Пусть шлет на клиент пакет, какой именно dimansion он создал.
 
675
2
anti344 написал(а):
Проблемы плагина. Пусть шлет на клиент пакет, какой именно dimansion он создал.
Я использую лучший плагин, на другие желания переходить нет. А я уверен, что дефолтно клиенту шлется название мира, в котором существует игрок.

Хорошо, как получить папку, в которой находится мир?
Пусть даже в сингле, ибо ни такая:

Код:
             EntityPlayer player = (EntityPlayer) Minecraft.getMinecraft().thePlayer;
             
             System.out.println(player.worldObj.getSaveHandler().getWorldDirectoryName());

ни такая:


Код:
System.out.println(Minecraft.getMinecraft().thePlayer.worldObj.getSaveHandler().getWorldDirectoryName());

конструкция не может выдать мне её выдать, т.е. метод возвращает мне: none

p.s. - Папка с миром названа латинскими буквами
 
905
5
Try4W написал(а):
Evgeniy написал(а):
Миры через entity.dimension проверяй
В моем случае мир на сервере(кастомный, созданный плагином) и dimension у него динамический.
Try4W написал(а):
мир на сервере(кастомный, созданный плагином)
Try4W написал(а):
Опять ежа и ужа скрещиваем?
Minecraft.getMinecraft().thePlayer.worldObj.getWorldInfo().getWorldName() попробуй.
 
675
2
laz2727 написал(а):
Опять ежа и ужа скрещиваем?
Minecraft.getMinecraft().thePlayer.worldObj.getWorldInfo().getWorldName() попробуй.
Именно :)
На выходе получаю MpServer и в сингле и в мультиплеере.
Решил свою проблему с помощью измерений:
if (Minecraft.getMinecraft().thePlayer.dimension > 2)

Тему можно закрывать.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху