001 package org.bukkit.entity; 002 003 /** 004 * Represents a villager NPC 005 */ 006 public interface Villager extends Ageable, NPC { 007 008 /** 009 * Gets the current profession of this villager. 010 * 011 * @return Current profession. 012 */ 013 public Profession getProfession(); 014 015 /** 016 * Sets the new profession of this villager. 017 * 018 * @param profession New profession. 019 */ 020 public void setProfession(Profession profession); 021 022 023 /** 024 * Represents the various different Villager professions there may be. 025 */ 026 public enum Profession { 027 FARMER(0), 028 LIBRARIAN(1), 029 PRIEST(2), 030 BLACKSMITH(3), 031 BUTCHER(4); 032 033 private static final Profession[] professions = new Profession[Profession.values().length]; 034 private final int id; 035 036 static { 037 for (Profession type : values()) { 038 professions[type.getId()] = type; 039 } 040 } 041 042 private Profession(int id) { 043 this.id = id; 044 } 045 046 /** 047 * Gets the ID of this profession. 048 * 049 * @return Profession ID. 050 * @deprecated Magic value 051 */ 052 @Deprecated 053 public int getId() { 054 return id; 055 } 056 057 /** 058 * Gets a profession by its ID. 059 * 060 * @param id ID of the profession to get. 061 * @return Resulting profession, or null if not found. 062 * @deprecated Magic value 063 */ 064 @Deprecated 065 public static Profession getProfession(int id) { 066 return (id >= professions.length) ? null : professions[id]; 067 } 068 } 069 }