Hallo Leute,
heute werde ich euch zeigen, wie ihr NPCs für euren Server programmieren könnt, die essentielle Infos bei einem Klick preisgeben.
Mir ist klar, dass dies einfacher geht, aber ich möchte den technischen Aspekt erläutern, da es dort viele Möglichkeiten gibt.
Ihr braucht:
Als erstes benötigen wir einen neuen NPC, mit dem wir arbeiten können. Dazu brauchen wir das "Registry" von Citizens, das die NPCs verwaltet.
Mit dem registry können wir uns einen neuen NPC erstellen, der einen Namen und einen Typ braucht. Wir brauchen also einen EntityType und einen String.
Mit diesen können wir so:
einen neuen NPC erschaffen, den wir, an einer beliebigen Location, so spawnen:
Wenn man daraus eine Methode bastelt, könnte das ungefähr so aussehen:
Nun haben wir einen NPC, der absolut nichts kann.
Citizens bietet allerdings das NPCRightClickEvent, mit dem man beim Klick auf einen NPC weiterarbeiten kann:
Je nach Name kann man dann weiterarbeiten.
zB:
Viel Spaß damit!
heute werde ich euch zeigen, wie ihr NPCs für euren Server programmieren könnt, die essentielle Infos bei einem Klick preisgeben.
Mir ist klar, dass dies einfacher geht, aber ich möchte den technischen Aspekt erläutern, da es dort viele Möglichkeiten gibt.
Ihr braucht:
- Bukkit als Library
- Citizens als Library
- Eine IDE eurer Wahl
Als erstes benötigen wir einen neuen NPC, mit dem wir arbeiten können. Dazu brauchen wir das "Registry" von Citizens, das die NPCs verwaltet.
Code:
NPCRegistry registry = CitizensAPI.getNPCRegistry();
Mit dem registry können wir uns einen neuen NPC erstellen, der einen Namen und einen Typ braucht. Wir brauchen also einen EntityType und einen String.
Code:
EntityType type = EntityType.VILLAGER;
String name = "Bob";
Mit diesen können wir so:
Code:
NPC npc = registry.createNPC(type, name);
einen neuen NPC erschaffen, den wir, an einer beliebigen Location, so spawnen:
Code:
npc.spawn(loc);
Wenn man daraus eine Methode bastelt, könnte das ungefähr so aussehen:
Code:
public void createNPC(EntityType type, String name, Location loc) {
NPCRegistry registry = CitizensAPI.getNPCRegistry();
NPC npc = registry.createNPC(type, name);
npc.spawn(loc);
}
Nun haben wir einen NPC, der absolut nichts kann.
Citizens bietet allerdings das NPCRightClickEvent, mit dem man beim Klick auf einen NPC weiterarbeiten kann:
Code:
public void onTouch(NPCRightClickEvent e){
NPC n = (NPC) e.getNPC();
String name = n.getName();
}
Je nach Name kann man dann weiterarbeiten.
zB:
Code:
public void onTouch(NPCRightClickEvent e){
NPC n = (NPC) e.getNPC();
String name = n.getName();
if(name.equals("Bob")){
e.getClicker().setHealth(0);
}
}
Viel Spaß damit!