Java tutorial
/* * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ package works.chatterbox.hooks.ircchannels.channels.invites; import com.google.common.base.Preconditions; import com.google.common.collect.HashMultimap; import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.Multimap; import org.bukkit.OfflinePlayer; import org.jetbrains.annotations.NotNull; import works.chatterbox.chatterbox.channels.Channel; import java.util.Collection; import java.util.UUID; public class Invites { // Player UUID -> Channel names private final Multimap<UUID, String> invites = HashMultimap.create(); public void addInvite(@NotNull final UUID uuid, @NotNull final String name) { Preconditions.checkNotNull(uuid, "uuid was null"); Preconditions.checkNotNull(name, "name was null"); this.invites.put(uuid, name); } public void addInvite(@NotNull final OfflinePlayer offlinePlayer, @NotNull final Channel channel) { Preconditions.checkNotNull(offlinePlayer, "offlinePlayer was null"); Preconditions.checkNotNull(channel, "channel was null"); this.addInvite(offlinePlayer.getUniqueId(), channel.getName()); } public Multimap<UUID, String> getAllInvites() { return ImmutableMultimap.copyOf(this.invites); } public Collection<String> getInvites(@NotNull final UUID uuid) { Preconditions.checkNotNull(uuid, "uuid was null"); return this.invites.get(uuid); } public Collection<String> getInvites(@NotNull final OfflinePlayer offlinePlayer) { Preconditions.checkNotNull(offlinePlayer, "offlinePlayer was null"); return this.getInvites(offlinePlayer.getUniqueId()); } public boolean isInvited(@NotNull final UUID uuid, @NotNull final String name) { Preconditions.checkNotNull(uuid, "uuid was null"); Preconditions.checkNotNull(name, "name was null"); return this.invites.containsEntry(uuid, name); } public boolean isInvited(@NotNull final OfflinePlayer offlinePlayer, @NotNull final Channel channel) { Preconditions.checkNotNull(offlinePlayer, "offlinePlayer was null"); Preconditions.checkNotNull(channel, "channel was null"); return this.isInvited(offlinePlayer.getUniqueId(), channel.getName()); } public void removeAllInvites(@NotNull final UUID uuid) { Preconditions.checkNotNull(uuid, "uuid was null"); this.invites.removeAll(uuid); } public void removeInvite(@NotNull final OfflinePlayer offlinePlayer, @NotNull final Channel channel) { Preconditions.checkNotNull(offlinePlayer, "offlinePlayer was null"); Preconditions.checkNotNull(channel, "channel was null"); this.removeInvite(offlinePlayer.getUniqueId(), channel.getName()); } public void removeInvite(@NotNull final UUID uuid, @NotNull final String name) { Preconditions.checkNotNull(uuid, "uuid was null"); Preconditions.checkNotNull(name, "name was null"); this.invites.remove(uuid, name); } }