Hay leute das hier ist eine methode um Free schilder zu programmieren , ich dachte mir ich gebse mal als "schnipsel" hier ab
Java
package free;import org.bukkit.Material;import org.bukkit.block.Block;import org.bukkit.entity.Player;import org.bukkit.event.EventHandler;import org.bukkit.event.Listener;import org.bukkit.event.block.SignChangeEvent;public class SignChangeListener implements Listener{ @EventHandler public void onChange(SignChangeEvent e) { Player p = e.getPlayer(); if (e.getLine(0).equalsIgnoreCase("[sfree]")) { <--- so erstellt man die Free schilder dann ;) if (p.hasPermission("Sign.create")) { if (e.getLine(1) != null) { e.setLine(0, "§7[§6FREE§7]"); e.setLine(1, "§7" + e.getLine(1)); } else { p.sendMessage("§cDiggaaa in der zweiten Zeile muss eine Zahl!"); } } else { e.getBlock().setType(Material.AIR); p.sendMessage("§cDiggaaa du musst Admin sein!"); } } }}
Java
package free;
import org.bukkit.Bukkit;
import org.bukkit.block.Block;
import org.bukkit.block.Sign;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack;
public class InteractSignListener
implements Listener
{
@EventHandler
public void onClick(PlayerInteractEvent e)
{
Player p = e.getPlayer();
if ((e.getAction() == Action.RIGHT_CLICK_BLOCK) &&
((e.getClickedBlock().getState() instanceof Sign)))
{
Sign s = (Sign)e.getClickedBlock().getState();
if (s.getLine(0).equalsIgnoreCase("§7[§FREE§7]"))
{
int id = Integer.valueOf(s.getLine(1).replace("§7", "")).intValue();
Inventory inv = Bukkit.createInventory(null, 9, "Free-Item");
inv.setItem(0, new ItemStack(id));
inv.setItem(1, new ItemStack(id));
inv.setItem(2, new ItemStack(id));
inv.setItem(3, new ItemStack(id));
inv.setItem(4, new ItemStack(id));
inv.setItem(5, new ItemStack(id));
inv.setItem(6, new ItemStack(id));
inv.setItem(7, new ItemStack(id));
inv.setItem(8, new ItemStack(id));
p.openInventory(inv);
}
}
}
}
Alles anzeigen
Kommentare 9
Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.
Neu erstellte Kommentare unterliegen der Moderation und werden erst sichtbar, wenn sie durch einen Moderator geprüft und freigeschaltet wurden.
Joey
Ich frage mich gerade, warum du das als Schnipsel freigibst. Es ist sehr simpel und bevor sich das jetzt jemand kopiert und neu compiled, würde er/sie es eher neu schreiben. Zumal würde es ich persönlich eher in eine Klasse packen, evtl. sogar in die Main.
Jetzt zum Code an sich:
Wenn ich du wäre, würde ich beim PlayerInteractEvent noch ein Try Catch hinzufügen. Was ist wenn ich das auf meinem Server nutze und anstatt der Item id, ein String (or whatever) angebe ? Dann laufen die ganze Zeit Leute dran vorbei klicken drauf und spamen mir den Log mit Errors voll !
Scann
Kannste ja selbst ändern , es soll nur ein Schnipsel sein und was den jenigen gefällt soll er nehm oder nicht und obs jemand kopiert ist mir egal
Joey
Trotzdem, sollten auch Schnipsel fehlerfrei sein . Warum sollte man diese sonst veröffentlichen ?
Scann
Damit man sie dich Methode angucken kann
Joey
Warum sollte man sich eine Fehlerhafte Methode angucken ? Damit man sie falsch "lernt" ?
Scann
Habe nicht gesagt das man davon lern soll ist mir auch jetzt egal nimms oder nimms nicht
Marcel Reif
Das geht ganz einfach mit Essentials
Scann
Ja das ist eine eigene Methode wo wann es sich selbst gestallten kann , und halt für Developer im bereich Bukkit weil die Essentials schilder sehen nicht immer so hübsch aus
Marcel Reif
Plugin unerlaubt dekladieren (KA ob man das so schreibt) Code ändern basta xD