works.chatterbox.hooks.ircchannels.channels.invites.Invites.java Source code

Java tutorial

Introduction

Here is the source code for works.chatterbox.hooks.ircchannels.channels.invites.Invites.java

Source

/*
 * 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);
    }

}