// 
// Decompiled by Procyon v0.6.0
// 

package com.hypixel.hytale.server.core.event.events.permissions;

import java.util.Collections;
import java.util.Set;
import javax.annotation.Nonnull;
import com.hypixel.hytale.event.IEvent;

public abstract class GroupPermissionChangeEvent implements IEvent<Void>
{
    @Nonnull
    private final String groupName;
    
    protected GroupPermissionChangeEvent(@Nonnull final String groupName) {
        this.groupName = groupName;
    }
    
    @Nonnull
    public String getGroupName() {
        return this.groupName;
    }
    
    public static class Added extends GroupPermissionChangeEvent
    {
        @Nonnull
        private final Set<String> addedPermissions;
        
        public Added(@Nonnull final String groupName, @Nonnull final Set<String> addedPermissions) {
            super(groupName);
            this.addedPermissions = addedPermissions;
        }
        
        @Nonnull
        public Set<String> getAddedPermissions() {
            return Collections.unmodifiableSet((Set<? extends String>)this.addedPermissions);
        }
    }
    
    public static class Removed extends GroupPermissionChangeEvent
    {
        @Nonnull
        private final Set<String> removedPermissions;
        
        public Removed(@Nonnull final String groupName, @Nonnull final Set<String> removedPermissions) {
            super(groupName);
            this.removedPermissions = removedPermissions;
        }
        
        @Nonnull
        public Set<String> getRemovedPermissions() {
            return Collections.unmodifiableSet((Set<? extends String>)this.removedPermissions);
        }
    }
}
