Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Объясните зачем так пишут

Тема в разделе "Разработка плагинов для новичков", создана пользователем popugau, 9 янв 2015.

  1. Автор темы
    popugau

    popugau Активный участник Пользователь

    Баллы:
    61
    Объясните зачем так пишут CraftPlayer player = (CraftPlayer) player. Что это дает и откуда берут этого Craftplayer'a
     
  2. Хостинг MineCraft
    <
  3. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Для начала вам нужно понять разницу между Bukkit и Craftbukkit.
     
  4. Автор темы
    popugau

    popugau Активный участник Пользователь

    Баллы:
    61
    Вроде никакой. Одно и тоже
     
  5. Flumaster

    Flumaster Старожил Девелопер Пользователь

    Баллы:
    153
    Skype:
    alexey_aristov
    Если это обработчик команды - то для того чтобы писать из-под консоли.
     
  6. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Одно и то же, как руль и велосипед. Для ответа на ваш вопрос вам надо изучить Java, чтобы понять, для чего делают кастование.
     
  7. UniWest

    UniWest Активный участник Пользователь

    Баллы:
    66
    Skype:
    CrazyLee1337
    Имя в Minecraft:
    Reflect1on
    Приведу пример как понимаю я, например отловили событие,

    public void onDrop(PlayerDropItemEvent e)
    {
    Player p = e.getPlayer();
    Bla bla bla
    }

    //в коде не нужно будет прописывать e.getPlayer(); , достаточно будет поставить один символ p.
     
  8. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Речь идёт о кастовании, а не объявлении переменных.
     
  9. Ission

    Ission Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    lokivava
    Есть такая вещь, как Bukkit API, она реализуется разными серверами и даёт нам более или менее уникальные интерфесы. Как реализовывать это API решают разработчики сами. В конкретном случае это ядро CraftBukkit, и реализует класс Player класс CraftPlayer, но это отход от API и уход вглубь конкретной реализации сервера. То есть если весьма грубо сказать, то Player -- это яблоко, а CraftPlayer -- это антоновка, и то и другое можно съесть. Яблоко нам не скажет о вкусе конкретнее, чем антоновка. Если мы возьмём какую-то другую реализацию, то там может и не быть(да и не должно быть) CraftPlayer'а, если вернуться к яблокам, то это будет например ранет. CraftPlayer нам даёт доступ к более глубинным функциям, которые не вынесены в API, но в то же время разработчики ядра вовсе не обязаны использовать в двух релизах с разницей в минуту одни и те же методы в CraftPlayer, в то время как для Player, они это делать обязаны.
     

Поделиться этой страницей