Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Плагин Zombiekettle

Статус
Закрыто для дальнейших ответов.

Чайник

Активный участник
Баллы
68
Имя в Minecraft
BupycOK
И так, дорогие поклонники Minecraft, представляю вам свой плагин, который я начал писать 2 дня тому назад, просто для себя. Лично я отказываюсь писать всякую хероту под всякими темами... Сам плагин не думая долго я назвал "zombiekettle". При смерти игрока по его позиции в мире будет создаваться моб "ZOMBIE". Создаваться он будет не от кого попало, а в строгой зависимости от вот такого Permissions разрешения "zombiekettle.death" (по стандарту от OP-a). Исходник заливать в гитхаб не стал, так как до конца я его не доделал (хочу добавить эффект дымка как от эндермана. Напоминаю, я его делал и продолжу усовершенствовать для себя).

-----------------------------------------------------------
ZombieKettleEntityListener.java
Код:
package me.kettle.plugins.zombiekettle;
 
import org.bukkit.World;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
 
public class ZombieKettleEntityListener implements Listener {
 
    @EventHandler
    public void onEntityDeath(EntityDeathEvent ede) {
 
        if(ede instanceof PlayerDeathEvent) {
 
            Player p = (Player) ede.getEntity();
 
            if(p.isPermissionSet("zombiekettle.death") || p.isOp()) {
 
                p.getWorld().spawnCreature(p.getLocation(), EntityType.ZOMBIE);
 
            }
 
        }
 
    }
 
}
-----------------------------------------------------------
ZombieKettle.java
Код:
package me.kettle.plugins.zombiekettle;
 
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
 
public class ZombieKettle extends JavaPlugin {
 
    @Override
    public void onDisable() {
    }
 
    @Override
    public void onEnable() {
   
        PluginManager pm = getServer().getPluginManager();
 
        pm.registerEvents(new ZombieKettleEntityListener(), this);
 
    }
 
}
-----------------------------------------------------------
plugin.yml
Код:
name: zombiekettle
version: 1.0
author: kettle
//мой ник в Minecraft: BupycOK
//мой ник на RuBukkit: чайник
 
main: me.kettle.plugins.zombiekettle
 
UP
1. Изменил существенно код, теперь он рабочий (теперь чистый копипаст моей работы. Скомпилил, протестировал на сервере версии 1.2.5, все работает без ошибок)
2. Так как я не смог создать опрос в этой теме, пишем ответ в комментарий под этим коментом.
Опрос: Хотели бы вы получать от меня этот плагин в готовом виде с обновлениями и т.д.?
варианты ответа:
  1. Да.
  2. Нет.
 
UP
1. Изменил существенно код, теперь он рабочий (теперь чистый копипаст моей работы. Скомпилил, протестировал на сервере версии 1.2.5, все работает без ошибок)
2. Так как я не смог создать опрос в этой теме, пишем ответ в комментарий под этим коментом.
Опрос: Хотели бы вы получать от меня этот плагин в готовом виде с обновлениями и т.д.?
варианты ответа:
  1. Да.
  2. Нет.

2.
Если кому надо - пусть компилируют.
А какой смысл то плагина?
 
2.
В плагине нет смысла.
 
Лучше так:
Если админ умрет, то на его месте появится зомби-гигант или дракон:). Тогда прикольно будет.
 
Лучше так:
Если админ умрет, то на его месте появится зомби-гигант или дракон:). Тогда прикольно будет.

Код:
            if(p.isPermissionSet("zombiekettle.admin") || p.isOp()) {
 
                p.getWorld().spawnCreature(p.getLocation(), EntityType.ENDERDRAGON);
 
            }
 
2.
Если кому надо - пусть компилируют.
А какой смысл то плагина?
самый главный смысл, это убить время и написать нужное количество сообщений, что бы я мог создавать темы самостоятельно а не с помощью администрации...
а так же плагин не плохо смотрится в действии (в следующем Релизе будет круче)
ну наверное ещё что бы получить девелопера :rolleyes:
 
@Чайник, ты выложи сразу готовый плагин. Из строк кода не каждый сможет его собрать
 
Код:
package me.kettle.plugins.zombiekettle;
 
import org.bukkit.World;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
 
public class ZombieKettleEntityListener implements Listener {
 
    @EventHandler
    public void onEntityDeath(EntityDeathEvent ede) {
 
        if(ede instanceof PlayerDeathEvent) {
 
            Player p = (Player) ede.getEntity();
 
            if(p.isPermissionSet("zombiekettle.death") && !p.isOp()) {
 
                p.getWorld().spawnCreature(p.getLocation(), EntityType.ZOMBIE);
 
            } else if(p.isOp()) {
            p.getWorld().spawnCreature(p.getLocation(), EntityType.ZOMBIE);
            WeatherChangeEvent(p.getWorld(), true);
            org.bukkit.command.CommandSender.sendMessage("Админ сдох. На его месте возрожден дракон и теперь погода дождливая!");
            }
 
        }
 
    }
 
}
А такое должно работать? И ещё, можете мне объяснить что это за финальная булевская переменная org.bukkit.event.weather.WeatherChangeEvent.to ? Как я понял, она и означает тип погоды.
 
И ещё, можете мне объяснить что это за финальная булевская переменная org.bukkit.event.weather.WeatherChangeEvent.to ? Как я понял, она и означает тип погоды.
true переменная на дождь, false переменная на ясную погоду
(копипаст: http://jd.bukkit.org/doxygen/d9/dda...eEvent.html#a46184a76b4f4e110ad50412bb4692e2d)
boolean org.bukkit.event.weather.WeatherChangeEvent.toWeatherState ( )
Gets the state of weather that the world is being set to.
Returns:
true if the weather is being set to raining, false otherwise
Definition at line 33 of file WeatherChangeEvent.java.
References org.bukkit.event.weather.WeatherChangeEvent.to.
 
Код:
package me.kettle.plugins.zombiekettle;
 
import org.bukkit.World;
import org.bukkit.ChatColor;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.weather;
 
public class ZombieKettleEntityListener implements Listener {
 
    @EventHandler
    public void onEntityDeath(EntityDeathEvent ede) {
 
        if(ede instanceof PlayerDeathEvent) {
 
            Player p = (Player) ede.getEntity();
 
            if(p.isPermissionSet("zombiekettle.death") {
 
                p.getWorld().spawnCreature(p.getLocation(), EntityType.ZOMBIE);
            }
 
            if(p.isOp) {
 
                p.getWorld().spawnCreature(p.getLocation(), EntityType.GIANT);
                WeatherChangeEvent.toWeatherState(p.getWorld(), true);
                ((PlayerDeathEvent) ede).setDeathMessage(ChatColor.RED + p.getName() + " сдох. На его месте возрожден зомби переросток и теперь погода дождливая!");
            }
 
        }
 
    }
 
}
в том что вы дописали куча ошибок... нужно писать все это в eclipse. Исправил как считаю нужным: +цвет сообщения(+импорт цвета) +исправил чат уведомление +дописал в сообщение имя того OP-а кто умер +импорт погоды +заменил на другого моба +чуть отредактировал (WeatherChangeEvent.toWeatherState(p.getWorld(), true) +короче исправил все (осталось проверить в eclipse);) :)

да и ещё нужно будет дописать Entitу к этому зомби переростку, и при его смерти переменная погоды будет false, то есть ясная погода, и дописать sendMessage что-то типо "зомби переросток сдох, можете теперь не беспокоится" при его смерти.
 
Лично я думаю что нужно привинтить при смерти OP-а простой смоук еффект со звуком телепортации эндермена(дымок) вместо моба. Так будет круче... А ещё лучше вообще поменять спавн зомби на случайный спавн между свиньей и пиг меном, так же к ним звук свой. Как вы считаете?
 
ммм... классный плагин
я админом специально дохнуть буду!
 
Код:
package me.kettle.plugins.zombiekettle;
 
import org.bukkit.World;
import org.bukkit.ChatColor;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDeathEvent;
import org.bukkit.event.entity.PlayerDeathEvent;
import org.bukkit.event.weather;
 
public class ZombieKettleEntityListener implements Listener {
 
    @EventHandler
    public void onEntityDeath(EntityDeathEvent ede) {
 
        if(ede instanceof PlayerDeathEvent) {
 
            Player p = (Player) ede.getEntity();
 
            if(p.isPermissionSet("zombiekettle.death") {
 
                p.getWorld().spawnCreature(p.getLocation(), EntityType.ZOMBIE);
            }
 
            if(p.isOp) {
 
                p.getWorld().spawnCreature(p.getLocation(), EntityType.GIANT);
                WeatherChangeEvent.toWeatherState(p.getWorld(), true);
                ((PlayerDeathEvent) ede).setDeathMessage(ChatColor.RED + p.getName() + " сдох. На его месте возрожден зомби переросток и теперь погода дождливая!");
            }
 
        }
 
    }
 
}
в том что вы дописали куча ошибок... нужно писать все это в eclipse. Исправил как считаю нужным: +цвет сообщения(+импорт цвета) +исправил чат уведомление +дописал в сообщение имя того OP-а кто умер +импорт погоды +заменил на другого моба +чуть отредактировал (WeatherChangeEvent.toWeatherState(p.getWorld(), true) +короче исправил все (осталось проверить в eclipse);) :)

да и ещё нужно будет дописать Entitу к этому зомби переростку, и при его смерти переменная погоды будет false, то есть ясная погода, и дописать sendMessage что-то типо "зомби переросток сдох, можете теперь не беспокоится" при его смерти.
Я в блокноте писал ._. , в вашем кода погрешность одна - когда умрет ОП, отспаунятся 2 вида зомби
 
Статус
Закрыто для дальнейших ответов.

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

Назад
Верх