mirror of
https://github.com/ClassiCube/MCGalaxy.git
synced 2025-09-28 07:56:20 -04:00
Merge branch 'master' of github.com:Hetal728/MCGalaxy
This commit is contained in:
commit
d19ffbb363
@ -169,7 +169,7 @@ namespace MCGalaxy.Commands
|
|||||||
public override void Help(Player p) {
|
public override void Help(Player p) {
|
||||||
Player.SendMessage(p, "/map [level] [toggle] - Sets [toggle] on [level]");
|
Player.SendMessage(p, "/map [level] [toggle] - Sets [toggle] on [level]");
|
||||||
Player.SendMessage(p, "Possible toggles: theme, finite, randomflow, ai, edge, grass, growtrees, leafdecay, ps, overload, motd, " +
|
Player.SendMessage(p, "Possible toggles: theme, finite, randomflow, ai, edge, grass, growtrees, leafdecay, ps, overload, motd, " +
|
||||||
"death, fall, drown, unload, loadongoto, rp, instant, killer, chat, buildable, deletable");
|
"death, fall, drown, unload, loadongoto, rp, killer, chat, buildable, deletable, levelonlydeath");
|
||||||
Player.SendMessage(p, "Edge will cause edge water to flow.");
|
Player.SendMessage(p, "Edge will cause edge water to flow.");
|
||||||
Player.SendMessage(p, "Grass will make grass not grow without physics.");
|
Player.SendMessage(p, "Grass will make grass not grow without physics.");
|
||||||
Player.SendMessage(p, "Tree growing will make saplings grow into trees after a while.");
|
Player.SendMessage(p, "Tree growing will make saplings grow into trees after a while.");
|
||||||
@ -187,7 +187,6 @@ namespace MCGalaxy.Commands
|
|||||||
Player.SendMessage(p, "Unload sets whether the map unloads when no one's there.");
|
Player.SendMessage(p, "Unload sets whether the map unloads when no one's there.");
|
||||||
Player.SendMessage(p, "Load on /goto sets whether the map can be loaded when some uses /goto. Only works if the load on /goto server option is enabled.");
|
Player.SendMessage(p, "Load on /goto sets whether the map can be loaded when some uses /goto. Only works if the load on /goto server option is enabled.");
|
||||||
Player.SendMessage(p, "RP sets whether the physics auto-start for the map");
|
Player.SendMessage(p, "RP sets whether the physics auto-start for the map");
|
||||||
Player.SendMessage(p, "Instant mode works by not updating everyone's screens");
|
|
||||||
Player.SendMessage(p, "Buildable sets whether any blocks can be placed by any player");
|
Player.SendMessage(p, "Buildable sets whether any blocks can be placed by any player");
|
||||||
Player.SendMessage(p, "Deleteable sets whether any blocks can be deleted by any player");
|
Player.SendMessage(p, "Deleteable sets whether any blocks can be deleted by any player");
|
||||||
}
|
}
|
||||||
|
@ -60,9 +60,7 @@ namespace MCGalaxy.Commands {
|
|||||||
GetRealBlock(type, extType, p, ref cpos);
|
GetRealBlock(type, extType, p, ref cpos);
|
||||||
|
|
||||||
if (cpos.mode == DrawMode.straight) {
|
if (cpos.mode == DrawMode.straight) {
|
||||||
int dx = Math.Abs(cpos.x - x);
|
int dx = Math.Abs(cpos.x - x), dy = Math.Abs(cpos.y - y), dz = Math.Abs(cpos.z - z);
|
||||||
int dy = Math.Abs(cpos.y - y);
|
|
||||||
int dz = Math.Abs(cpos.z - z);
|
|
||||||
|
|
||||||
if (dx > dy && dx > dz) {
|
if (dx > dy && dx > dz) {
|
||||||
y = cpos.y; z = cpos.z;
|
y = cpos.y; z = cpos.z;
|
||||||
|
@ -30,6 +30,7 @@ namespace MCGalaxy.Commands {
|
|||||||
public override void Use(Player p, string message) {
|
public override void Use(Player p, string message) {
|
||||||
ushort distance = 0, interval = 0;
|
ushort distance = 0, interval = 0;
|
||||||
if (message == "") { Help(p); return; }
|
if (message == "") { Help(p); return; }
|
||||||
|
if (p == null) { MessageInGameOnly(p); return; }
|
||||||
|
|
||||||
string[] parts = message.Split(' ');
|
string[] parts = message.Split(' ');
|
||||||
if (!ushort.TryParse(parts[0], out distance)) {
|
if (!ushort.TryParse(parts[0], out distance)) {
|
||||||
@ -66,25 +67,28 @@ namespace MCGalaxy.Commands {
|
|||||||
RevertAndClearState(p, x, y, z);
|
RevertAndClearState(p, x, y, z);
|
||||||
CatchPos cpos = (CatchPos)p.blockchangeObject;
|
CatchPos cpos = (CatchPos)p.blockchangeObject;
|
||||||
ushort distance = cpos.distance, interval = cpos.interval;
|
ushort distance = cpos.distance, interval = cpos.interval;
|
||||||
if (x == cpos.x && z == cpos.z) { Player.SendMessage(p, "No direction was selected"); return; }
|
if (x == cpos.x && y == cpos.y && z == cpos.z) { Player.SendMessage(p, "No direction was selected"); return; }
|
||||||
|
|
||||||
|
int dirX = 0, dirY = 0, dirZ = 0;
|
||||||
|
int dx = Math.Abs(cpos.x - x), dy = Math.Abs(cpos.y - y), dz = Math.Abs(cpos.z - z);
|
||||||
|
if (dy > dx && dy > dz) dirY = y > cpos.y ? 1 : -1;
|
||||||
|
else if (dx > dz) dirX = x > cpos.x ? 1 : -1;
|
||||||
|
else dirZ = z > cpos.z ? 1 : -1;
|
||||||
|
|
||||||
int dirX = 0, dirZ = 0;
|
|
||||||
if (Math.Abs(cpos.x - x) > Math.Abs(cpos.z - z))
|
|
||||||
dirX = x > cpos.x ? 1 : -1;
|
|
||||||
else
|
|
||||||
dirZ = z > cpos.z ? 1 : -1;
|
|
||||||
ushort endX = (ushort)(cpos.x + dirX * distance);
|
ushort endX = (ushort)(cpos.x + dirX * distance);
|
||||||
|
ushort endY = (ushort)(cpos.y + dirY * distance);
|
||||||
ushort endZ = (ushort)(cpos.z + dirZ * distance);
|
ushort endZ = (ushort)(cpos.z + dirZ * distance);
|
||||||
p.level.UpdateBlock(p, endX, cpos.y, endZ, Block.rock, 0);
|
p.level.UpdateBlock(p, endX, endY, endZ, Block.rock, 0);
|
||||||
|
|
||||||
if (interval > 0) {
|
if (interval > 0) {
|
||||||
ushort xx = cpos.x, zz = cpos.z;
|
ushort xx = cpos.x, yy = cpos.y, zz = cpos.z;
|
||||||
int delta = 0;
|
int delta = 0;
|
||||||
while (xx < p.level.Width && zz < p.level.Length && delta < distance) {
|
while (xx < p.level.Width && yy < p.level.Height && zz < p.level.Length && delta < distance) {
|
||||||
p.level.UpdateBlock(p, xx, cpos.y, zz, Block.rock, 0);
|
p.level.UpdateBlock(p, xx, yy, zz, Block.rock, 0);
|
||||||
xx = (ushort)(xx + dirX * interval);
|
xx = (ushort)(xx + dirX * interval);
|
||||||
|
yy = (ushort)(yy + dirY * interval);
|
||||||
zz = (ushort)(zz + dirZ * interval);
|
zz = (ushort)(zz + dirZ * interval);
|
||||||
delta = Math.Abs(xx - cpos.x) + Math.Abs(zz - cpos.z);
|
delta = Math.Abs(xx - cpos.x) + Math.Abs(yy - cpos.y) + Math.Abs(zz - cpos.z);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
p.level.UpdateBlock(p, cpos.x, cpos.y, cpos.z, Block.rock, 0);
|
p.level.UpdateBlock(p, cpos.x, cpos.y, cpos.z, Block.rock, 0);
|
||||||
|
@ -413,6 +413,7 @@ namespace MCGalaxy
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary> Returns whether the given coordinates are insides the boundaries of this level. </summary>
|
||||||
public bool InBound(ushort x, ushort y, ushort z)
|
public bool InBound(ushort x, ushort y, ushort z)
|
||||||
{
|
{
|
||||||
return x >= 0 && y >= 0 && z >= 0 && x < Width && y < Height && z < Length;
|
return x >= 0 && y >= 0 && z >= 0 && x < Width && y < Height && z < Length;
|
||||||
@ -703,6 +704,7 @@ namespace MCGalaxy
|
|||||||
|
|
||||||
public void ChatLevelAdmins(string message) { ChatLevel(message, Server.adminchatperm); }
|
public void ChatLevelAdmins(string message) { ChatLevel(message, Server.adminchatperm); }
|
||||||
|
|
||||||
|
/// <summary> Sends a chat messages to all players in the level, who have at least the minPerm rank. </summary>
|
||||||
public void ChatLevel(string message, LevelPermission minPerm) {
|
public void ChatLevel(string message, LevelPermission minPerm) {
|
||||||
Player[] players = PlayerInfo.Online;
|
Player[] players = PlayerInfo.Online;
|
||||||
foreach (Player pl in players) {
|
foreach (Player pl in players) {
|
||||||
|
@ -32,6 +32,11 @@ namespace MCGalaxy {
|
|||||||
SendMessage(p, from, message);
|
SendMessage(p, from, message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Obsolete("Use GlobalChatLevel instead, this method has been removed.")]
|
||||||
|
public static void GlobalChatWorld(Player from, string message, bool showname) {
|
||||||
|
GlobalChatLevel(from, message, showname);
|
||||||
|
}
|
||||||
|
|
||||||
public static void GlobalChatRoom(Player from, string message, bool showname) {
|
public static void GlobalChatRoom(Player from, string message, bool showname) {
|
||||||
string oldmessage = message;
|
string oldmessage = message;
|
||||||
@ -61,17 +66,7 @@ namespace MCGalaxy {
|
|||||||
}
|
}
|
||||||
Server.s.Log(oldmessage + "<ChatRoom" + chatroom + ">" + from.prefix + from.name + message);
|
Server.s.Log(oldmessage + "<ChatRoom" + chatroom + ">" + from.prefix + from.name + message);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void GlobalChatWorld(Player from, string message, bool showname) {
|
|
||||||
if (showname)
|
|
||||||
message = "<World>" + from.color + from.voicestring + from.color + from.prefix + from.name + ": &f" + message;
|
|
||||||
Player[] players = PlayerInfo.Online;
|
|
||||||
foreach (Player p in players) {
|
|
||||||
if (p.level.worldChat && p.Chatroom == null)
|
|
||||||
SendMessage(p, from, message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void GlobalMessageLevel(Level l, string message) {
|
public static void GlobalMessageLevel(Level l, string message) {
|
||||||
Player[] players = PlayerInfo.Online;
|
Player[] players = PlayerInfo.Online;
|
||||||
foreach (Player p in players) {
|
foreach (Player p in players) {
|
||||||
|
@ -1026,33 +1026,33 @@ return;
|
|||||||
if ( level.Killer && !invincible && !hidden ) {
|
if ( level.Killer && !invincible && !hidden ) {
|
||||||
|
|
||||||
switch ( b ) {
|
switch ( b ) {
|
||||||
case Block.tntexplosion: Chat.GlobalChatLevel(this, this.FullName + Server.DefaultColor + " &cblew into pieces.", false); break;
|
case Block.tntexplosion: Chat.GlobalChatLevel(this, FullName + " %S&cblew into pieces.", false); break;
|
||||||
case Block.deathair: Chat.GlobalChatLevel(this, this.FullName + Server.DefaultColor + " walked into &cnerve gas and suffocated.", false); break;
|
case Block.deathair: Chat.GlobalChatLevel(this, FullName + " %Swalked into &cnerve gas and suffocated.", false); break;
|
||||||
case Block.deathwater:
|
case Block.deathwater:
|
||||||
case Block.activedeathwater: Chat.GlobalChatLevel(this, this.FullName + Server.DefaultColor + " stepped in &dcold water and froze.", false); break;
|
case Block.activedeathwater: Chat.GlobalChatLevel(this, FullName + " %Sstepped in &dcold water and froze.", false); break;
|
||||||
case Block.deathlava:
|
case Block.deathlava:
|
||||||
case Block.activedeathlava:
|
case Block.activedeathlava:
|
||||||
case Block.fastdeathlava: Chat.GlobalChatLevel(this, this.FullName + Server.DefaultColor + " stood in &cmagma and melted.", false); break;
|
case Block.fastdeathlava: Chat.GlobalChatLevel(this, FullName + " %Sstood in &cmagma and melted.", false); break;
|
||||||
case Block.magma: Chat.GlobalChatLevel(this, this.FullName + Server.DefaultColor + " was hit by &cflowing magma and melted.", false); break;
|
case Block.magma: Chat.GlobalChatLevel(this, FullName + " %Swas hit by &cflowing magma and melted.", false); break;
|
||||||
case Block.geyser: Chat.GlobalChatLevel(this, this.FullName + Server.DefaultColor + " was hit by &cboiling water and melted.", false); break;
|
case Block.geyser: Chat.GlobalChatLevel(this, FullName + " %Swas hit by &cboiling water and melted.", false); break;
|
||||||
case Block.birdkill: Chat.GlobalChatLevel(this, this.FullName + Server.DefaultColor + " was hit by a &cphoenix and burnt.", false); break;
|
case Block.birdkill: Chat.GlobalChatLevel(this, FullName + " %Swas hit by a &cphoenix and burnt.", false); break;
|
||||||
case Block.train: Chat.GlobalChatLevel(this, this.FullName + Server.DefaultColor + " was hit by a &ctrain.", false); break;
|
case Block.train: Chat.GlobalChatLevel(this, FullName + " %Swas hit by a &ctrain.", false); break;
|
||||||
case Block.fishshark: Chat.GlobalChatLevel(this, this.FullName + Server.DefaultColor + " was eaten by a &cshark.", false); break;
|
case Block.fishshark: Chat.GlobalChatLevel(this, FullName + " %Swas eaten by a &cshark.", false); break;
|
||||||
case Block.fire: Chat.GlobalChatLevel(this, this.FullName + Server.DefaultColor + " burnt to a &ccrisp.", false); break;
|
case Block.fire: Chat.GlobalChatLevel(this, FullName + " %Sburnt to a &ccrisp.", false); break;
|
||||||
case Block.rockethead: Chat.GlobalChatLevel(this, this.FullName + Server.DefaultColor + " was &cin a fiery explosion.", false); level.MakeExplosion(x, y, z, 0); break;
|
case Block.rockethead: Chat.GlobalChatLevel(this, FullName + " %Swas &cin a fiery explosion.", false); level.MakeExplosion(x, y, z, 0); break;
|
||||||
case Block.zombiebody: Chat.GlobalChatLevel(this, this.FullName + Server.DefaultColor + " died due to lack of &5brain.", false); break;
|
case Block.zombiebody: Chat.GlobalChatLevel(this, FullName + " %Sdied due to lack of &5brain.", false); break;
|
||||||
case Block.creeper: Chat.GlobalChatLevel(this, this.FullName + Server.DefaultColor + " was killed &cb-SSSSSSSSSSSSSS", false); level.MakeExplosion(x, y, z, 1); break;
|
case Block.creeper: Chat.GlobalChatLevel(this, FullName + " %Swas killed &cb-SSSSSSSSSSSSSS", false); level.MakeExplosion(x, y, z, 1); break;
|
||||||
case Block.air: Chat.GlobalChatLevel(this, this.FullName + Server.DefaultColor + " hit the floor &chard.", false); break;
|
case Block.air: Chat.GlobalChatLevel(this, FullName + " %Shit the floor &chard.", false); break;
|
||||||
case Block.water: Chat.GlobalChatLevel(this, this.FullName + Server.DefaultColor + " &cdrowned.", false); break;
|
case Block.water: Chat.GlobalChatLevel(this, FullName + " %S&cdrowned.", false); break;
|
||||||
case Block.Zero: Chat.GlobalChatLevel(this, this.FullName + Server.DefaultColor + " was &cterminated", false); break;
|
case Block.Zero: Chat.GlobalChatLevel(this, FullName + " %Swas &cterminated", false); break;
|
||||||
case Block.fishlavashark: Chat.GlobalChatLevel(this, this.FullName + Server.DefaultColor + " was eaten by a ... LAVA SHARK?!", false); break;
|
case Block.fishlavashark: Chat.GlobalChatLevel(this, FullName + " %Swas eaten by a ... LAVA SHARK?!", false); break;
|
||||||
case Block.rock:
|
case Block.rock:
|
||||||
if ( explode ) level.MakeExplosion(x, y, z, 1);
|
if ( explode ) level.MakeExplosion(x, y, z, 1);
|
||||||
SendChatFrom(this, this.FullName + Server.DefaultColor + customMessage, false);
|
SendChatFrom(this, FullName + "%S" + customMessage, false);
|
||||||
break;
|
break;
|
||||||
case Block.stone:
|
case Block.stone:
|
||||||
if ( explode ) level.MakeExplosion(x, y, z, 1);
|
if ( explode ) level.MakeExplosion(x, y, z, 1);
|
||||||
Chat.GlobalChatLevel(this, this.FullName + Server.DefaultColor + customMessage, false);
|
Chat.GlobalChatLevel(this, FullName + "%S" + customMessage, false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if ( team != null && this.level.ctfmode ) {
|
if ( team != null && this.level.ctfmode ) {
|
||||||
@ -1348,7 +1348,7 @@ return;
|
|||||||
string newtext = text;
|
string newtext = text;
|
||||||
if (!Server.worldChat) {
|
if (!Server.worldChat) {
|
||||||
newtext = text.Remove(0, 1).Trim();
|
newtext = text.Remove(0, 1).Trim();
|
||||||
Chat.GlobalChatWorld(this, newtext, true);
|
Chat.GlobalChatLevel(this, newtext, true);
|
||||||
} else {
|
} else {
|
||||||
SendChatFrom(this, newtext);
|
SendChatFrom(this, newtext);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user