001    package org.bukkit.plugin;
002    
003    /**
004     * Represents a base {@link Plugin}
005     * <p>
006     * Extend this class if your plugin is not a {@link
007     * org.bukkit.plugin.java.JavaPlugin}
008     */
009    public abstract class PluginBase implements Plugin {
010        @Override
011        public final int hashCode() {
012            return getName().hashCode();
013        }
014    
015        @Override
016        public final boolean equals(Object obj) {
017            if (this == obj) {
018                return true;
019            }
020            if (obj == null) {
021                return false;
022            }
023            if (!(obj instanceof Plugin)) {
024                return false;
025            }
026            return getName().equals(((Plugin) obj).getName());
027        }
028    
029        public final String getName() {
030            return getDescription().getName();
031        }
032    }