001/* 002 * Trident - A Multithreaded Server Alternative 003 * Copyright 2014 The TridentSDK Team 004 * 005 * Licensed under the Apache License, Version 2.0 (the "License"); 006 * you may not use this file except in compliance with the License. 007 * You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017package net.tridentsdk.server.data.item; 018 019import java.util.ArrayList; 020import java.util.List; 021import java.util.stream.Collectors; 022 023import net.tridentsdk.effect.potion.PotionEffect; 024import net.tridentsdk.meta.item.PotionMeta; 025import net.tridentsdk.meta.nbt.NBTField; 026import net.tridentsdk.meta.nbt.TagType; 027import net.tridentsdk.server.effect.potion.TridentPotionEffect; 028 029public class PotionMetaImpl extends ItemMetaImpl implements PotionMeta { 030 @NBTField(name = "CustomPotionEffects", type = TagType.LIST) 031 protected List<TridentPotionEffect> additionalEffects = new ArrayList<>(); 032 033 @Override 034 public List<PotionEffect> effects() { 035 return additionalEffects.stream().map((e) -> e).collect(Collectors.toList()); 036 } 037 038 @Override 039 public void setEffects(List<PotionEffect> effects) { 040 this.additionalEffects = effects.stream().map((e) -> (TridentPotionEffect) e).collect(Collectors.toList()); 041 } 042}