public override void Start(ICoreAPI api)
        {
            base.Start(api);

            this.Api = api;

            if (api.World is IClientWorldAccessor)
            {
                (api as ICoreClientAPI).Event.RegisterRenderer(this, EnumRenderStage.Before, "mechanicalpowertick");

                clientNwChannel =
                    ((ICoreClientAPI)api).Network.RegisterChannel("vsmechnetwork")
                    .RegisterMessageType(typeof(MechNetworkPacket))
                    .RegisterMessageType(typeof(NetworkRemovedPacket))
                    .RegisterMessageType(typeof(MechClientRequestPacket))
                    .SetMessageHandler <MechNetworkPacket>(OnPacket)
                    .SetMessageHandler <NetworkRemovedPacket>(OnNetworkRemovePacket)
                ;
            }
            else
            {
                api.World.RegisterGameTickListener(OnServerGameTick, 20);
                serverNwChannel =
                    ((ICoreServerAPI)api).Network.RegisterChannel("vsmechnetwork")
                    .RegisterMessageType(typeof(MechNetworkPacket))
                    .RegisterMessageType(typeof(NetworkRemovedPacket))
                    .RegisterMessageType(typeof(MechClientRequestPacket))
                    .SetMessageHandler <MechClientRequestPacket>(OnClientRequestPacket)
                ;
            }
        }
        /// <summary>
        ///     Side agnostic Start method, called after all mods received a call to StartPre().
        /// </summary>
        /// <param name="api">The main API for the game.</param>
        public override void Start(ICoreAPI api)
        {
            base.Start(api);
            switch (api.Side)
            {
            case EnumAppSide.Server:
                NetworkEx.Server = ServerChannel = (ApiEx.Server = Sapi = (ICoreServerAPI)api).Network
                                                   .RegisterChannel(Id)
                                                   .RegisterMessageType <CompositionDataPacket>()
                                                   .SetMessageHandler <CompositionDataPacket>(OnIncomingServerDataPacket);
                break;

            case EnumAppSide.Client:
                NetworkEx.Client = ClientChannel = (ApiEx.Client = Capi = (ICoreClientAPI)api).Network
                                                   .RegisterChannel(Id)
                                                   .RegisterMessageType <CompositionDataPacket>()
                                                   .SetMessageHandler <CompositionDataPacket>(OnIncomingClientDataPacket);
                break;

            case EnumAppSide.Universal:
                ApiEx.Universal = api;
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
示例#3
0
        public override void Start(ICoreAPI api)
        {
            base.Start(api);
            this.Api     = api;
            this.wireMod = api.ModLoader.GetModSystem <HangingWiresMod>();

            if (api.World is IClientWorldAccessor)
            {
                //(api as ICoreClientAPI).Event.RegisterRenderer(this, EnumRenderStage.Before, "signalnetworktick");
                clientNetworkChannel =
                    ((ICoreClientAPI)api).Network.RegisterChannel("signalnetwork");
                //.RegisterMessageType(typeof(MechNetworkPacket))
                //.RegisterMessageType(typeof(NetworkRemovedPacket))
                //.RegisterMessageType(typeof(MechClientRequestPacket))
                //.SetMessageHandler<MechNetworkPacket>(OnPacket)
                //.SetMessageHandler<NetworkRemovedPacket>(OnNetworkRemovePacket);
            }
            else
            {
                api.World.RegisterGameTickListener(OnServerGameTick, 20);
                serverNetworkChannel =
                    ((ICoreServerAPI)api).Network.RegisterChannel("signalnetwork");
                //.RegisterMessageType(typeof(MechNetworkPacket))
                //.RegisterMessageType(typeof(NetworkRemovedPacket))
                //.RegisterMessageType(typeof(MechClientRequestPacket))
                //.SetMessageHandler<MechClientRequestPacket>(OnClientRequestPacket);
            }
        }
示例#4
0
        public override void StartServerSide(ICoreServerAPI sapi)
        {
            this.sapi = sapi;

            exportFolderPath = sapi.GetOrCreateDataPath("WorldEdit");

            sapi.Permissions.RegisterPrivilege("worldedit", "Ability to use world edit tools");

            sapi.RegisterCommand("we", "World edit tools", "[ms|me|mc|mex|clear|mdelete|mfill|imp|impr|blu|brs|brm|ers|range|tool|on|off|undo|redo|sovp|block|...]", CmdEditServer, "worldedit");

            sapi.Event.PlayerJoin += OnPlayerJoin;

            sapi.Event.PlayerSwitchGameMode += OnSwitchedGameMode;

            sapi.Event.BreakBlock     += OnBreakBlock;
            sapi.Event.DidPlaceBlock  += OnDidBuildBlock;
            sapi.Event.SaveGameLoaded += OnLoad;
            sapi.Event.GameWorldSave  += OnSave;

            serverChannel =
                sapi.Network.RegisterChannel("worldedit")
                .RegisterMessageType(typeof(RequestWorkSpacePacket))
                .RegisterMessageType(typeof(WorldEditWorkspace))
                .RegisterMessageType(typeof(ChangePlayerModePacket))
                .RegisterMessageType(typeof(CopyToClipboardPacket))
                .RegisterMessageType(typeof(SchematicJsonPacket))
                .SetMessageHandler <RequestWorkSpacePacket>(OnRequestWorkSpaceMessage)
                .SetMessageHandler <ChangePlayerModePacket>(OnChangePlayerModeMessage)
                .SetMessageHandler <SchematicJsonPacket>(OnReceivedSchematic)
            ;
        }
示例#5
0
        public ServerSkinNetwork(ICoreServerAPI api)
        {
            this.sapi = api;

            this.serverNetworkChannel = api.Network.RegisterChannel("playerskins");
            this.serverNetworkChannel.RegisterMessageType(typeof(SkinChange));
            this.serverNetworkChannel.SetMessageHandler <SkinChange>(SaveSkin);
        }
        public override void StartServerSide(ICoreServerAPI api)
        {
            api.Event.ServerRunPhase(EnumServerRunPhase.LoadGamePre, addReinforcementBehavior);

            serverChannel = api.Network
                            .RegisterChannel("blockreinforcement")
                            .RegisterMessageType(typeof(ChunkReinforcementData))
            ;
        }
示例#7
0
 public override void StartServerSide(ICoreServerAPI api)
 {
     sapi     = api;
     sChannel =
         sapi.Network.RegisterChannel("sortchannel")
         .RegisterMessageType(typeof(SortMessage))
         .RegisterMessageType(typeof(SortResponse))
         .SetMessageHandler <SortResponse>(OnClientMessage);
 }
示例#8
0
        public override void StartServerSide(ICoreServerAPI api)
        {
            serverApi = api;

            serverChannel =
                api.Network.RegisterChannel("networkapitest")
                .RegisterMessageType(typeof(SyncSeedBagContentsMessage))
                .SetMessageHandler <SyncSeedBagContentsMessage>(OnClientMessage)
            ;
        }
示例#9
0
        public override void StartServerSide(ICoreServerAPI api)
        {
            api.RegisterCommand("errorreporter", "Toggles on/off the error reporting dialog on startup", "[on|off]", OnCmdErrRep, Privilege.controlserver);

            serverChannel =
                api.Network.RegisterChannel("errorreporter")
                .RegisterMessageType(typeof(ServerLogEntries))
            ;

            api.Event.PlayerJoin += OnPlrJoin;
        }
示例#10
0
        /// <summary>
        /// Initializes the server side channel. Must be called at startup if SynchronizedBusSystem is disabled.
        /// </summary>
        /// <param name="sapi">The Server API</param>
        public static void StartServerSide(ICoreServerAPI sapi)
        {
            api = sapi;

            if (serverChannel == null)
            {
                serverChannel = sapi.Network.RegisterChannel("synchronizedbus")
                                .RegisterMessageType <SynchronizedEvent>()
                                .SetMessageHandler <SynchronizedEvent>((_, packet) => OnPacket(packet));
            }
        }
示例#11
0
        public override void StartServerSide(ICoreServerAPI api)
        {
            serverAPI = api;
            serverAPI.Event.PlayerJoin += OnPlayerJoinServer;

            serverChannel =
                api.Network.RegisterChannel("networksit")
                .RegisterMessageType(typeof(NetworkAnimationSit))
                .SetMessageHandler <NetworkAnimationSit>(OnClientMessage)
            ;
            ;
        }
        public override void StartServerSide(ICoreServerAPI api)
        {
            this.sapi = api;

            serverChannel =
                api.Network.RegisterChannel("lootrandomizer")
                .RegisterMessageType(typeof(SaveLootRandomizerAttributes))
                .RegisterMessageType(typeof(SaveStackRandomizerAttributes))
                .SetMessageHandler <SaveLootRandomizerAttributes>(OnLootRndMsg)
                .SetMessageHandler <SaveStackRandomizerAttributes>(OnStackRndMsg);
            ;
        }
示例#13
0
        public override void StartServerSide(ICoreServerAPI api)
        {
            serverApi = api;

            serverChannel =
                api.Network.RegisterChannel("networkapitest")
                .RegisterMessageType(typeof(NetworkApiTestMessage))
                .RegisterMessageType(typeof(NetworkApiTestResponse))
                .SetMessageHandler <NetworkApiTestResponse>(OnClientMessage)
            ;

            api.RegisterCommand("nwtest", "Send a test network message", "", OnNwTestCmd, Privilege.controlserver);
        }
        public override void StartServerSide(ICoreServerAPI api)
        {
            this.sapi = api;

            serverChannel =
                api.Network.RegisterChannel("weather")
                .RegisterMessageType(typeof(WeatherState))
            ;

            sapi.Event.RegisterGameTickListener(OnServerGameTick, 200);
            sapi.Event.GameWorldSave  += OnSaveGameSaving;
            sapi.Event.SaveGameLoaded += Event_SaveGameLoaded;
        }
示例#15
0
        public override void StartServerSide(ICoreServerAPI api)
        {
            base.StartServerSide(api);
            this.api  = api;
            this.sapi = api;

            api.Event.RegisterGameTickListener(ServerSlowTick, 200);
            api.Event.ServerRunPhase(EnumServerRunPhase.Shutdown, OnServerShutDown);
            api.Event.RegisterGameTickListener(FastTick, 20);

            serverChannel =
                api.Network.RegisterChannel("sleeping")
                .RegisterMessageType(typeof(NetworksMessageAllSleepMode))
            ;
        }
示例#16
0
        public override void StartServerSide(ICoreServerAPI api)
        {
            base.StartServerSide(api);

            sapi = api;

            api.Event.SaveGameLoaded += Event_SaveGameLoaded;
            api.Event.GameWorldSave  += Event_GameWorldSave;
            api.Event.PlayerJoin     += Event_PlayerJoin;
            api.Event.RegisterGameTickListener(OnServerTick100ms, 101);
            api.Event.RegisterGameTickListener(OnServerTick3s, 2999);
            api.RegisterCommand("rifttest", "", "", onCmdRiftTest);

            schannel = sapi.Network.GetChannel("rifts");
        }
示例#17
0
        public override void StartServerSide(ICoreServerAPI api)
        {
            this.sapi = api;
            api.Event.SaveGameLoaded += OnLoadGame;
            api.Event.GameWorldSave  += OnSaveGame;

            api.Event.RegisterEventBusListener(OnConfigEventServer, 0.5, "configTeleporter");

            serverChannel =
                api.Network.RegisterChannel("tpManager")
                .RegisterMessageType(typeof(TpLocations))
                .RegisterMessageType(typeof(TeleporterLocation))
                .SetMessageHandler <TeleporterLocation>(OnSetLocationReceived)
            ;
        }
        public override void StartServerSide(ICoreServerAPI sapi)
        {
            sapi.Event.ServerRunPhase(EnumServerRunPhase.RunGame, OnLoaded);
            sapi.Event.ServerRunPhase(EnumServerRunPhase.Shutdown, () => IsShuttingDown = true);

            serverChannel =
                sapi.Network.RegisterChannel("worldmap")
                .RegisterMessageType(typeof(MapLayerUpdate))
                .RegisterMessageType(typeof(OnViewChangedPacket))
                .RegisterMessageType(typeof(OnMapToggle))
                .SetMessageHandler <OnMapToggle>(OnMapToggledServer)
                .SetMessageHandler <OnViewChangedPacket>(OnViewChangedServer)
                .SetMessageHandler <MapLayerUpdate>(OnMapLayerDataReceivedServer)
            ;
        }
示例#19
0
        public override void StartServerSide(ICoreServerAPI api)
        {
            this.sapi = api;
            LoadConfigs();

            serverChannel = api.Network.GetChannel("weather");

            sapi.Event.RegisterGameTickListener(OnServerGameTick, 200);
            sapi.Event.GameWorldSave  += OnSaveGameSaving;
            sapi.Event.SaveGameLoaded += Event_SaveGameLoaded;
            sapi.Event.OnGetClimate   += Event_OnGetClimate;
            sapi.Event.PlayerJoin     += Event_PlayerJoin;


            snowSimSnowAccu = new WeatherSimulationSnowAccum(sapi, this);
        }
示例#20
0
        public override void StartServerSide(ICoreServerAPI api)
        {
            this.sapi                 = api;
            api.Event.PlayerJoin     += OnPlayerJoin;
            api.Event.SaveGameLoaded += OnSaveGameLoaded;
            api.Event.GameWorldSave  += OnGameGettingSaved;

            serverChannel =
                api.Network.RegisterChannel("journal")
                .RegisterMessageType(typeof(JournalEntry))
                .RegisterMessageType(typeof(Journal))
                .RegisterMessageType(typeof(JournalPiecce))
            ;

            api.Event.RegisterEventBusListener(OnLoreDiscovery, 0.5, "loreDiscovery");
        }
示例#21
0
        /// <summary> Initialize the handler </summary>
        public void Initialize()
        {
            Sapi.RegisterEntityBehaviorClass("allomancy", typeof(EntityBehaviorAllomancy));

            Channel = Sapi.Network.RegisterChannel(MistModSystem.MOD_ID)
                      .RegisterMessageType(typeof(BurnMessage))
                      .RegisterMessageType(typeof(SelectedMetalMessage))
                      .RegisterMessageType(typeof(ReplaceAlloHelperEntity));

            Channel.SetMessageHandler <BurnMessage>(OnBurnMetalMessage);
            Channel.SetMessageHandler <SelectedMetalMessage>(OnSelectedMetalMessage);

            Sapi.Event.PlayerJoin    += OnPlayerJoin;
            Sapi.Event.PlayerRespawn += OnPlayerRespawn;
            Sapi.Event.OnEntitySpawn += OnEntitySpawn;
        }
示例#22
0
        public override void StartServerSide(ICoreServerAPI api)
        {
            sapi = api;

            api.Event.SaveGameLoaded += OnLoadGame;
            api.Event.GameWorldSave  += OnSaveGame;
            api.Event.PlayerJoin     += PushTeleports;

            serverChannel = api.Network
                            .RegisterChannel("tpnet")
                            .RegisterMessageType(typeof(ForTeleportingData))
                            .RegisterMessageType(typeof(TeleportMsg))
                            .SetMessageHandler <ForTeleportingData>(OnTeleport)
                            .SetMessageHandler <TeleportMsg>(OnServerReceiveTeleportMsg)
            ;
        }
示例#23
0
        public override void StartServerSide(ICoreServerAPI api)
        {
            this.api = api;

            api.Event.RegisterGameTickListener(OnServerTick, 20);

            api.RegisterCommand("slomo", "", "", OnCmdSlomoToggleServer, Privilege.controlserver);
            api.RegisterCommand("glitch", "", "", OnCmdGlitchToggle, Privilege.controlserver);
            api.RegisterCommand("rain", "", "", OnCmdRainToggle, Privilege.controlserver);


            serverChannel =
                api.Network.RegisterChannel("gameeffects")
                .RegisterMessageType(typeof(GameEffectsPacket))
            ;
        }
        public override void StartServerSide(ICoreServerAPI api)
        {
            api.Event.ServerRunPhase(EnumServerRunPhase.ModsAndConfigReady, addReinforcementBehavior);
            api.Event.SaveGameLoaded += Event_SaveGameLoaded;
            api.Event.GameWorldSave  += Event_GameWorldSave;
            api.Event.PlayerJoin     += Event_PlayerJoin;

            serverChannel = api.Network
                            .RegisterChannel("blockreinforcement")
                            .RegisterMessageType(typeof(ChunkReinforcementData))
                            .RegisterMessageType(typeof(PrivGrantsData))
            ;

            api.RegisterCommand("bre", "Block reinforcement privilege management", "[grant|revoke|grantgroup|revokegroup] [playername/groupname] [use or all]", onCmd, Privilege.chat);

            api.Permissions.RegisterPrivilege("denybreakreinforced", "Deny the ability to break reinforced blocks", false);
        }
        public override void StartServerSide(ICoreServerAPI api)
        {
            this.sapi = api;
            api.Event.SaveGameLoaded += OnLoadGame;
            api.Event.GameWorldSave  += OnSaveGame;

            api.Event.RegisterEventBusListener(OnConfigEventServer, 0.5, "configTeleporter");
            api.RegisterCommand("settlpos", "Set translocator target teleport position of currently looked at translocator", "[position]", onSetTlPos, Privilege.setspawn);

            serverChannel =
                api.Network.RegisterChannel("tpManager")
                .RegisterMessageType(typeof(TpLocations))
                .RegisterMessageType(typeof(TeleporterLocation))
                .RegisterMessageType(typeof(DidTeleport))
                .SetMessageHandler <TeleporterLocation>(OnSetLocationReceived)
            ;
        }
示例#26
0
        public override void StartServerSide(ICoreServerAPI api)
        {
            this.sapi                 = api;
            api.Event.PlayerJoin     += OnPlayerJoin;
            api.Event.SaveGameLoaded += OnSaveGameLoaded;
            api.Event.GameWorldSave  += OnGameGettingSaved;

            serverChannel =
                api.Network.RegisterChannel("journal")
                .RegisterMessageType(typeof(JournalEntry))
                .RegisterMessageType(typeof(Journal))
                .RegisterMessageType(typeof(JournalChapter))
            ;

            api.Event.RegisterEventBusListener(OnLoreDiscovery, 0.5, "loreDiscovery");

            //api.RegisterCommand("alllore", "", "", onCmdAllLore, Privilege.controlserver);
        }
示例#27
0
        public override void StartPre(ICoreAPI api)
        {
            api.RegisterItemClass("ItemCage", typeof(ItemCage));
            api.RegisterEntity("EntityThrownCage", typeof(EntityThrownCage));

            if (api.Side == EnumAppSide.Client)
            {
                (api as ICoreClientAPI).Network
                .RegisterChannel(ConstantsCore.ModId)
                .RegisterMessageType <Dictionary <AssetLocation, List <CaptureEntity> > >()
                .SetMessageHandler <Dictionary <AssetLocation, List <CaptureEntity> > >(OnReceiveAllBaits);
            }
            else
            {
                serverChannel = (api as ICoreServerAPI).Network
                                .RegisterChannel(ConstantsCore.ModId)
                                .RegisterMessageType <Dictionary <AssetLocation, List <CaptureEntity> > >();
            }
        }
示例#28
0
        public override void StartServerSide(ICoreServerAPI api)
        {
            this.sapi = api;

            serverChannel =
                api.Network.RegisterChannel("weather")
                .RegisterMessageType(typeof(WeatherState))
            ;

            sapi.RegisterCommand("weather", "Show current weather info", "", cmdWeatherServer, Privilege.controlserver);

            sapi.Event.RegisterGameTickListener(OnGameTick, 50);

            sapi.Event.SaveGameLoaded += OnSaveGameLoaded;
            sapi.Event.GameWorldSave  += OnSaveGameSaving;

            api.Event.PlayerJoin += OnPlayerJoin;

            this.cloudRenderer = new CloudRendererDummy();
        }
 public override void StartServerSide(ICoreServerAPI Api)
 {
     this.sapi = Api;
     sChannel  = Api.Network.RegisterChannel("iwcr").RegisterMessageType <IWCSPacket>().SetMessageHandler <IWCSPacket>((a, b) =>
     {
         if (b.DataType == EnumDataType.Action)
         {
             if (a?.CurrentBlockSelection?.Position == null)
             {
                 return;
             }
             if (Api.World.Claims.TryAccess(a, a.CurrentBlockSelection.Position, EnumBlockAccessFlags.BuildOrBreak))
             {
                 OnPlayerInteract(a, a.CurrentBlockSelection);
             }
         }
     });
     Api.Event.SaveGameLoaded += OnSaveGameLoaded;
     Api.Event.PlayerJoin     += SendCraftingRecipes;
 }
示例#30
0
        public override void Start(ICoreAPI api)
        {
            base.Start(api);
            this.api = api;

            if (api.World is IClientWorldAccessor)
            {
                clientChannel = ((ICoreClientAPI)api).Network.RegisterChannel("hangingwires")
                                .RegisterMessageType(typeof(HangingWiresData))
                                .RegisterMessageType(typeof(AddConnectionPacket))
                                .SetMessageHandler <HangingWiresData>(onDataFromServer);
            }
            else
            {
                serverChannel = ((ICoreServerAPI)api).Network.RegisterChannel("hangingwires")
                                .RegisterMessageType(typeof(HangingWiresData))
                                .RegisterMessageType(typeof(AddConnectionPacket))
                                .SetMessageHandler <AddConnectionPacket>(OnAddConnectionFromClient);
            }
        }