Moin Leute,
da ich seit kurzem Interesse für das Programmieren besitze, wollte ich mir ein eigenes Plugin schreiben, mit dem Spieler zufällige Statuseffekte (entweder Speed, Regeneration oder Stärke) erhalten, wenn sie von einer ShulkerBullet getroffen wurden. Dabei habe ich schon selber das grundlegende Event erfolgreich registriert, jedoch würde ich gerne noch weitere Details hinzufügen. Einerseits weiß ich nicht, wie ich die zufälligen Statuseffekte einem Spieler zu schreiben kann. Habe zwar mit "||" mein Glück versucht, jedoch kamen nur Fehlermeldungen. Ebenso will ich, dass die Shulker keinen Schaden mehr machen, sich nicht mehr teleportieren können sowie den Standard-Levitation-Effekt nicht mehr bei einem Treffer übertragen. Hier nun mein bisheriges Grundkonzept. Zuerst das dazugehörige Event und dann der Command, der die speziellen Shulker spawnt, welche jeweils in einer eigenen Klasse liegen. Hiermit bedanke ich mich schon mal an die ganzen Antworten!
- Rindex
:
da ich seit kurzem Interesse für das Programmieren besitze, wollte ich mir ein eigenes Plugin schreiben, mit dem Spieler zufällige Statuseffekte (entweder Speed, Regeneration oder Stärke) erhalten, wenn sie von einer ShulkerBullet getroffen wurden. Dabei habe ich schon selber das grundlegende Event erfolgreich registriert, jedoch würde ich gerne noch weitere Details hinzufügen. Einerseits weiß ich nicht, wie ich die zufälligen Statuseffekte einem Spieler zu schreiben kann. Habe zwar mit "||" mein Glück versucht, jedoch kamen nur Fehlermeldungen. Ebenso will ich, dass die Shulker keinen Schaden mehr machen, sich nicht mehr teleportieren können sowie den Standard-Levitation-Effekt nicht mehr bei einem Treffer übertragen. Hier nun mein bisheriges Grundkonzept. Zuerst das dazugehörige Event und dann der Command, der die speziellen Shulker spawnt, welche jeweils in einer eigenen Klasse liegen. Hiermit bedanke ich mich schon mal an die ganzen Antworten!
- Rindex
Code:
package de.rindex.shulker.listener;
import org.bukkit.entity.Player;
import org.bukkit.entity.ShulkerBullet;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.ProjectileHitEvent;
import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
public class BulletListener implements Listener {
@EventHandler
public boolean onBulletHit(ProjectileHitEvent e) {
if (e.getEntity() instanceof ShulkerBullet) {
Player p = (Player) e.getHitEntity();
p.sendMessage("§aDu wurdest von einer ShulkerBullet getroffen!");
p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 500, 1));
}
return false;
}
}
Code:
package de.rindex.shulker.commands;;
import org.bukkit.DyeColor;
import org.bukkit.Location;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.entity.Shulker;
public class SummonCommand1 implements CommandExecutor {
@Override
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
if(sender instanceof Player) {
Player player = (Player) sender;
Location loc = player.getLocation();
Shulker shulker = (Shulker) player.getWorld().spawnEntity(loc, EntityType.SHULKER);
shulker.setColor(DyeColor.BLUE);
shulker.setSilent(true);
shulker.setCustomName("§1Blauer Shulker");
player.sendMessage("Du hast einen blauen Shulker gespawnt!");
}
return true;
}
}