/* * This file is part of Skript. * * Skript is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Skript is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Skript. If not, see <http://www.gnu.org/licenses/>. * * * Copyright 2011, 2012 Peter Güttinger * */ package ch.njol.skript.aliases; import java.util.HashMap; import ch.njol.skript.Skript; import ch.njol.util.NonNullPair; final class MaterialName { String singular; String plural; int gender = 0; private final int id; final HashMap<NonNullPair<Short, Short>, NonNullPair<String, String>> names = new HashMap<NonNullPair<Short, Short>, NonNullPair<String, String>>(); public MaterialName(final int id, final String singular, final String plural, final int gender) { this.id = id; this.singular = singular; this.plural = plural; this.gender = gender; } public String toString(final short dataMin, final short dataMax, final boolean p) { // if (names == null) // return p ? plural : singular; @SuppressWarnings("null") NonNullPair<String, String> s = names.get(new NonNullPair<Short, Short>(Short.valueOf(dataMin), Short.valueOf(dataMax))); if (s != null) return p ? s.getSecond() : s.getFirst(); if (dataMin == -1 && dataMax == -1 || dataMin == 0 && dataMax == 0) return p ? plural : singular; s = names.get(new NonNullPair<Short, Short>((short) -1, (short) -1)); if (s != null) return p ? s.getSecond() : s.getFirst(); return p ? plural : singular; } public String getDebugName(final short dataMin, final short dataMax, final boolean p) { // if (names == null) // return p ? plural : singular; @SuppressWarnings("null") final NonNullPair<String, String> s = names.get(new NonNullPair<Short, Short>(Short.valueOf(dataMin), Short.valueOf(dataMax))); if (s != null) return p ? s.getSecond() : s.getFirst(); if (dataMin == -1 && dataMax == -1 || dataMin == 0 && dataMax == 0) return p ? plural : singular; return (p ? plural : singular) + ":" + (dataMin == -1 ? 0 : dataMin) + (dataMin == dataMax ? "" : "-" + (dataMax == -1 ? (id <= Skript.MAXBLOCKID ? 15 : Short.MAX_VALUE) : dataMax)); } }