public Target FillTargets(OpenPlayer commander, OpenLevel level, string source) { Target target = ParseTarget(source); if (target.Selector == "closestPlayer" && target.Rules == null) { target.Players = new[] { commander }; } else if (target.Selector == "closestPlayer" && target.Rules != null) { string username = target.Rules.First().Value; var players = level.GetAllPlayers().Where(p => p.Username == username); target.Players = players.ToArray(); } else if (target.Selector == "allPlayers") { target.Players = level.GetAllPlayers(); } else if (target.Selector == "allEntities") { target.Entities = level.GetEntites(); } else if (target.Selector == "randomPlayer") { MiNET.Player[] players = level.GetAllPlayers(); target.Players = new[] { players[new Random().Next(players.Length)] }; } return(target); }
public override void Enabled(OpenApi api) { Api = api; if (Config.GetProperty("WorldGen.IsDefault", false)) { IWorldGenerator generator; /* generator = new MiNET.Worlds.SuperflatGenerator(Dimension.Overworld) * { * BlockLayers = new List<Block>() * { * new Bedrock(), * new Dirt(), * new Dirt(), * new Grass() * } * };*/ generator = new OverworldGeneratorV2(); var level = new OpenLevel(api, api.LevelManager, Dimension.Overworld.ToString(), new DebugWorldProvider(generator), api.LevelManager.EntityManager, GameMode.Creative, Difficulty.Peaceful); api.LevelManager.LoadLevel(level); api.LevelManager.SetDefaultLevel(level); } api.EventDispatcher.RegisterEvents(this); if (Config.GetProperty("WorldGen.Debug", false)) { _timer = new Timer(Callback, null, TimeSpan.Zero, TimeSpan.FromSeconds(1.25)); } }
public SingleplayerServer(string world, Gamemode gamemode, Difficulty difficulty, Alex alex, IPEndPoint endPoint, PlayerProfile profile, DedicatedThreadPool threadPool, out NetworkProvider networkProvider) : base(alex, endPoint, profile, threadPool, out networkProvider) { Server = new OpenServer(); ReflectionHelper.SetPrivatePropertyValue( typeof(OpenServer), Server, "Endpoint", new IPEndPoint(IPAddress.Loopback, 0)); ConnectionEndpoint = Server.Endpoint; Api = ReflectionHelper.GetPrivatePropertyValue <OpenApi>(typeof(OpenServer), Server, "OpenApi"); MiNET.Worlds.AnvilWorldProvider provider = new MiNET.Worlds.AnvilWorldProvider(world); MiNETLevel = new OpenLevel( Api, Api.LevelManager, "default", provider, Api.LevelManager.EntityManager, (GameMode)gamemode, difficulty); Api.LevelManager.SetDefaultLevel(MiNETLevel); }
/// <summary> /// /// </summary> /// <param name="coordinates">The coordinates of the new chunk</param> /// <param name="chunk">An instance of the affected chunk</param> /// <param name="level">The level the chunk was generated in</param> public ChunkGeneratedEvent(ChunkCoordinates coordinates, ChunkColumn chunk, OpenLevel level) : base(chunk, level) { Coordinates = coordinates; }
/// <summary> /// /// </summary> /// <param name="world">The level that got initiated</param> public LevelInitEvent(OpenLevel world) : base(world) { }
public LevelSaveEvent(OpenLevel world) : base(world) { throw new NotImplementedException(); }
public ChunkEvent(ChunkColumn chunk, OpenLevel level) : base(level) { Chunk = chunk; }
public OpenEntity(int entityTypeId, OpenLevel level) : base(entityTypeId, level) { OpenLevel = level; }
/// <summary> /// /// </summary> /// <param name="chunk">The chunk that was unloaded</param> /// <param name="level">The level the chunk was unloaded from</param> public ChunkUnloadEvent(ChunkColumn chunk, OpenLevel level) : base(chunk, level) { }
/// <summary> /// /// </summary> /// <param name="world">The level the entity was added to</param> /// <param name="entity">The entity that has been added</param> public LevelEntityAddedEvent(OpenLevel world, MiNET.Entities.Entity entity) : base(world) { Entity = entity; }
/// <summary> /// /// </summary> /// <param name="world">The level that got closed</param> public LevelClosedEvent(OpenLevel world) : base(world) { }
public ChunkSaveEvent(ChunkColumn chunk, OpenLevel level) : base(chunk, level) { }
public LevelEvent(OpenLevel world) { Level = world; }