/*
* CraftBook Copyright (C) 2010-2017 sk89q <http://www.sk89q.com>
* CraftBook Copyright (C) 2011-2017 me4502 <http://www.me4502.com>
* CraftBook Copyright (C) Contributors
*
* This program 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.
*
* This program 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 this program. If not,
* see <http://www.gnu.org/licenses/>.
*/
package com.sk89q.craftbook.sponge.util.data;
import com.sk89q.craftbook.sponge.CraftBookPlugin;
import com.sk89q.craftbook.sponge.mechanics.blockbags.EmbeddedBlockBag;
import com.sk89q.craftbook.sponge.util.data.mutable.BlockBagData;
import com.sk89q.craftbook.sponge.util.data.builder.BlockBagDataManipulatorBuilder;
import com.sk89q.craftbook.sponge.util.data.mutable.EmbeddedBlockBagData;
import com.sk89q.craftbook.sponge.util.data.builder.EmbeddedBlockBagDataBuilder;
import com.sk89q.craftbook.sponge.util.data.immutable.ImmutableBlockBagData;
import com.sk89q.craftbook.sponge.util.data.immutable.ImmutableEmbeddedBlockBagData;
import com.sk89q.craftbook.sponge.util.data.builder.ICDataManipulatorBuilder;
import com.sk89q.craftbook.sponge.util.data.builder.LastPowerDataManipulatorBuilder;
import com.sk89q.craftbook.sponge.util.data.builder.NamespaceDataBuilder;
import com.sk89q.craftbook.sponge.util.data.immutable.ImmutableICData;
import com.sk89q.craftbook.sponge.util.data.immutable.ImmutableLastPowerData;
import com.sk89q.craftbook.sponge.util.data.immutable.ImmutableNamespaceData;
import com.sk89q.craftbook.sponge.util.data.mutable.ICData;
import com.sk89q.craftbook.sponge.util.data.mutable.LastPowerData;
import com.sk89q.craftbook.sponge.util.data.mutable.NamespaceData;
import org.spongepowered.api.Sponge;
import org.spongepowered.api.data.DataRegistration;
public class CraftBookData {
public static void registerData() {
// Generic Data
DataRegistration<LastPowerData, ImmutableLastPowerData> lastPowerData =
DataRegistration.<LastPowerData, ImmutableLastPowerData>builder()
.dataClass(LastPowerData.class)
.immutableClass(ImmutableLastPowerData.class)
.builder(new LastPowerDataManipulatorBuilder())
.manipulatorId("last_power")
.dataName("LastPower")
.buildAndRegister(CraftBookPlugin.spongeInst().container);
Sponge.getDataManager().registerLegacyManipulatorIds("com.sk89q.craftbook.sponge.util.data.mutable.LastPowerData", lastPowerData);
// IC Data
DataRegistration<ICData, ImmutableICData> icData =
DataRegistration.<ICData, ImmutableICData>builder()
.dataClass(ICData.class)
.immutableClass(ImmutableICData.class)
.builder(new ICDataManipulatorBuilder())
.manipulatorId("ic")
.dataName("IC")
.buildAndRegister(CraftBookPlugin.spongeInst().container);
Sponge.getDataManager().registerLegacyManipulatorIds("com.sk89q.craftbook.sponge.util.data.mutable.ICData", icData);
// Area Data
DataRegistration<NamespaceData, ImmutableNamespaceData> namespaceData =
DataRegistration.<NamespaceData, ImmutableNamespaceData>builder()
.dataClass(NamespaceData.class)
.immutableClass(ImmutableNamespaceData.class)
.builder(new NamespaceDataBuilder())
.manipulatorId("namespace")
.dataName("Namespace")
.buildAndRegister(CraftBookPlugin.spongeInst().container);
Sponge.getDataManager().registerLegacyManipulatorIds("com.sk89q.craftbook.sponge.util.data.mutable.NamespaceData", namespaceData);
// BlockBag Data
Sponge.getDataManager().registerBuilder(EmbeddedBlockBag.class, new EmbeddedBlockBag.EmbeddedBlockBagBuilder());
DataRegistration<EmbeddedBlockBagData, ImmutableEmbeddedBlockBagData> embeddedBlockBagData =
DataRegistration.<EmbeddedBlockBagData, ImmutableEmbeddedBlockBagData>builder()
.dataClass(EmbeddedBlockBagData.class)
.immutableClass(ImmutableEmbeddedBlockBagData.class)
.builder(new EmbeddedBlockBagDataBuilder())
.manipulatorId("embedded_blockbag")
.dataName("EmbeddedBlockBag")
.buildAndRegister(CraftBookPlugin.spongeInst().container);
Sponge.getDataManager().registerLegacyManipulatorIds("com.sk89q.craftbook.sponge.mechanics.blockbags.data.EmbeddedBlockBagData", embeddedBlockBagData);
DataRegistration<BlockBagData, ImmutableBlockBagData> blockBagData =
DataRegistration.<BlockBagData, ImmutableBlockBagData>builder()
.dataClass(BlockBagData.class)
.immutableClass(ImmutableBlockBagData.class)
.builder(new BlockBagDataManipulatorBuilder())
.manipulatorId("blockbag")
.dataName("BlockBag")
.buildAndRegister(CraftBookPlugin.spongeInst().container);
Sponge.getDataManager().registerLegacyManipulatorIds("com.sk89q.craftbook.sponge.mechanics.blockbags.data.BlockBagData", blockBagData);
}
}