Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Java (https://forum.zone-game.info/forumdisplay.php?f=126)
-   -   @Override - Помогите (https://forum.zone-game.info/showthread.php?t=16596)

Wolfas 04.11.2011 19:49

@Override - Помогите
 
Код:

public class MoveToMe extends AdminCommand
{

        public MoveToMe()
        {
                super("movetome");
        }

        @Override
        public void executeCommand(Player admin, final String[] params)
        {

                World.getInstance().doOnAllPlayers(new Executor<Player>()
                        {
                                @Override
                                public boolean run(Player player)
                                {
                                       
                                        if (player.getCommonData().getRace() == Race.ELYOS && params[0].equals("ely"))
                                        {
                                TeleportService.teleportTo(player, admin.getWorldId(), admin.getInstanceId(), admin.getX(), admin.getY(), admin.getZ(), admin.getHeading(), 0);
                                        }else if (player.getCommonData().getRace() == Race.ASMODIANS && params[0].equals("asmo"))
                                        {
                                TeleportService.teleportTo(player, admin.getWorldId(), admin.getInstanceId(), admin.getX(), admin.getY(), admin.getZ(), admin.getHeading(), 0);
                                        }
                                        return true;
                                }
                        });
               
                       
                Player playerToMove = World.getInstance().findPlayer(Util.convertName(params[0]));       

                if (playerToMove == admin)
                {
                        PacketSendUtility.sendMessage(admin, "Cannot use this command on yourself.");
                        return;
                }
                               
                if(params.length == 2)
                {
                        if(params[1].equals("alliance"))
                        {
                                if(playerToMove.getPlayerAlliance() != null)
                                {
                                        for(PlayerAllianceMember m : playerToMove.getPlayerAlliance().getMembers())
                                        {
                                                if(m != null && m.getPlayer() != null)
                                                {
                                                        port(admin, m.getPlayer());
                                                }
                                        }
                                }
                                else
                                {
                                        PacketSendUtility.sendMessage(admin, "This player is not in alliance.");
                                        port(admin, playerToMove);
                                }
                        }

                }               
        }
       
        private void port(Player admin, Player playerToMove)
        {
                TeleportService.teleportTo(playerToMove, admin.getWorldId(), admin.getInstanceId(), admin.getX(), admin.getY(), admin.getZ(), admin.getHeading(), 0);
                PacketSendUtility.sendMessage(admin, "Teleported player " + playerToMove.getName() + " to your location.");
                PacketSendUtility.sendMessage(playerToMove, "You have been teleported by " + admin.getName() + ".");       
        }
       
}

Конкретно суть проблемы:
TeleportService.teleportTo(player, admin.getWorldId(), admin.getInstanceId(), admin.getX(), admin.getY(), admin.getZ(), admin.getHeading(), 0)

Не понимает кто такой admin, как ему объяснить?
И без @Override не обойтись

PaInKiLlEr 04.11.2011 20:10

Re: @Override - Помогите
 
а с хуяли он должен его понимать?
компьютеру еще не придумали интелект который бы исполнил любое желание
напишите "president USA" заместо "admin", может быть ваш игрок научиться перемещаться из виртуала в реал и прямо в белый дом?

Effas 04.11.2011 20:16

Re: @Override - Помогите
 
Если я правильно понял суть вопроса:
Свернуть ↑Развернуть ↓

Wolfas 04.11.2011 20:20

Re: @Override - Помогите
 
Цитата:

Сообщение от PaInKiLlEr (Сообщение 146734)
а с хуяли он должен его понимать?
компьютеру еще не придумали интелект который бы исполнил любое желание
напишите "president USA" заместо "admin", может быть ваш игрок научиться перемещаться из виртуала в реал и прямо в белый дом?

Admin в этом коде, это не абстрактное значение.

Цитата:

Сообщение от Effas (Сообщение 146735)
Если я правильно понял суть вопроса:
Свернуть ↑Развернуть ↓

Да, вроде так.

По сути идентификатор для Admin уже включён в класс:
public void executeCommand

Но затем идущий @Override его сбрасывает.

VISTALL 05.11.2011 05:26

Re: @Override - Помогите
 
PHP код:

public void executeCommand(Player admin, final String[] params



final Player admin - сделай.



PS. Создания анонимных классов, без внешних нефинальных переменных запрещено
PSS. @Override - никак невлияет на код - ВООБЩЕ

Aquanox 05.11.2011 13:45

Re: @Override - Помогите
 
Цитата:

Сообщение от VISTALL (Сообщение 146756)
PSS. @Override - никак невлияет на код - ВООБЩЕ

На код особо не влияет но значительно помогает избавится от ошибок при переопределении методов на уровне компилятора.

http://stackoverflow.com/questions/9...tation-and-why
http://download.oracle.com/javase/tu...notations.html

VISTALL 05.11.2011 16:59

Re: @Override - Помогите
 
Цитата:

Сообщение от Aquanox (Сообщение 146795)
На код особо не влияет но значительно помогает избавится от ошибок при переопределении методов на уровне компилятора.

http://stackoverflow.com/questions/9...tation-and-why
http://download.oracle.com/javase/tu...notations.html

:Dну я все верно написал

Wolfas 05.11.2011 17:07

Re: @Override - Помогите
 
Цитата:

Сообщение от VISTALL (Сообщение 146756)
PHP код:

public void executeCommand(Player admin, final String[] params



final Player admin - сделай.



PS. Создания анонимных классов, без внешних нефинальных переменных запрещено
PSS. @Override - никак невлияет на код - ВООБЩЕ

Спасибо, за помощь, и за ещё одно полезное знание в моей копилке Java)

Код:

без внешних нефинальных переменных запрещено


Текущее время: 21:13. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot