ns-cloud-d1.googledomains.com
ns-cloud-d2.googledomains.com
ns-cloud-d3.googledomains.com
ns-cloud-d4.googledomains.com
2. Replace with Cloudflare's nameservers:
ian.ns.cloudflare.com
sasha.ns.cloudflare.com
(edited)spawnmason.com's nameservers are already being re-checked. You may only submit a re-check once per hour.
(edited)2019/12/28 20:46:04 [INFO] [eclipse.spawnmason.com] The server validated our request
2019/12/28 20:46:04 [INFO] [eclipse.spawnmason.com] acme: Validations succeeded; requesting certificates
2019/12/28 20:46:05 [INFO] [eclipse.spawnmason.com] Server responded with a certificate.
eclipse.spawnmason.com {
tls emailaddress
log stdout
errors stderr
proxy / web-masonic-eclipse:80 {
websocket
transparent
}
dscacheutil -flushcache
on macC:\Windows\system32>ping eclipse.spawnmason.com
Ping request could not find host eclipse.spawnmason.com. Please check the name and try again.
vips crop 100k.png cropped.png 35840 43986 30720 12928
ping eclipse.spawnmason.com
(edited)touch amitest
-> create ami -> boot from it? works fine, the file is thereapt install ffmpeg
-> create ami -> boot from it? completely unreachable, cannot connectleijurv@swamp:~$ aws s3 ls
__init__() got an unexpected keyword argument 'cert_file'
leijurv@swamp:~$
whATsh RUN_ME_TO_START_CHUNKY.sh
in Desktop, it works either over ssh or in the terminal in vncD:\ownCloud\storage\IronException Downloads\2b2t\Overworld - todo\spawn\2019-12-30 (6.5k)\all regions merged\map.png
look here[email protected]
baritoneboy@
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", HelloServer)
http.ListenAndServe(":8080", nil)
}
func HelloServer(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, %s!", r.URL.Path[1:])
}
Like I can make the serverSELECT x, z, ARRAY_AGG(status ORDER BY timestamp DESC)[0] AS current_status FROM history GROUP BY x, z
obsidian
obsidian=# create table history (campaign_id int, x int, z int, timestamp bigint, uuid text, status text);
CREATE TABLE
obsidian=# create table campaigns (campaign_id int, structure_id int, name text);
CREATE TABLE
obsidian=# create table section_data (structure_id int, x int, z int, data text, unique(structure_id, x, z));
CREATE TABLE
obsidian=#
bb.putLong(uuid.getMostSignificantBits());
bb.putLong(uuid.getLeastSignificantBits());
obsidian=# select * from history;
campaign_id | x | z | timestamp | uuid | status
-------------+---+---+-----------+------+-----------
1 | 0 | 0 | 0 | | yes
1 | 0 | 0 | 1 | | yes newer
1 | 0 | 1 | 1 | | epic
(3 rows)
obsidian=# select * from campaigns;
campaign_id | structure_id | name
-------------+--------------+----------
1 | 1 | logo idk
(1 row)
obsidian=# select * from section_data;
structure_id | x | z | data
--------------+-----+----+------
1 | 0 | 0 |
1 | 0 | 1 |
1 | 420 | 69 |
(3 rows)
obsidian=# select (array_agg(coalesce(history.status, 'NOT STARTED LOL') order by timestamp desc))[1] AS current_status, section_data.x, section_data.z from campaigns inner join section_data on campaigns.structure_id=section_data.structure_id left outer join history on history.campaign_id=campaigns.campaign_id and history.x=section_data.x and history.z=section_data.z group by section_data.x,section_data.z;
current_status | x | z
-----------------+-----+----
yes newer | 0 | 0
epic | 0 | 1
NOT STARTED LOL | 420 | 69
(3 rows)
obsidian=#
select (array_agg(coalesce(history.status, 'NOT STARTED LOL') order by timestamp desc))[1] AS current_status, section_data.x, section_data.z from campaigns inner join section_data on campaigns.structure_id=section_data.structure_id left outer join history on history.campaign_id=campaigns.campaign_id and history.x=section_data.x and history.z=section_data.z group by section_data.x,section_data.z;
roflCREATE TABLE section_data (
structure_id INTEGER NOT NULL,
x INTEGER NOT NULL,
z INTEGER NOT NULL,
data TEXT NOT NULL,
UNIQUE(structure_id, x, z),
CHECK(data ~* '^([01]{144}\n){144}$')
)
SELECT
section_data.x,
section_data.z,
(ARRAY_AGG(COALESCE(history.status, 'NOT STARTED') ORDER BY timestamp DESC))[1] AS current_status,
FROM
campaigns
INNER JOIN section_data ON
section_data.structure_id = campaigns.structure_id
LEFT OUTER JOIN history ON
history.campaign_id = campaigns.campaign_id
AND history.x = section_data.x
AND history.z = section_data.z
WHERE
campaigns.campaign_id = ?
GROUP BY
section_data.x, section_data.z
this will basically be the equivalent of what /sections currently is (edited)ERROR: invalid input value for enum status: "NOT STARTED"
LINE 4: (ARRAY_AGG(COALESCE(history.status, 'NOT STARTED') ORDER BY...
NOT_STARTED
is a valid value for the enum type of history.status
, but NOT STARTED
is notCREATE TABLE test_data (
data TEXT NOT NULL,
block_count INTEGER NOT NULL GENERATED ALWAYS AS (ARRAY_LENGTH(REGEXP_SPLIT_TO_ARRAY(data, '1'), 1) - 1) STORED
);
obsidian=# insert into test_data(data) values('00000');
INSERT 0 1
obsidian=# insert into test_data(data) values('000001');
INSERT 0 1
obsidian=# insert into test_data(data) values('01001001');
INSERT 0 1
obsidian=# select * from test_data;
data | block_count
----------+-------------
00000 | 0
000001 | 1
01001001 | 3
(3 rows)
obsidian=#
CREATE TABLE test_data (
data TEXT NOT NULL,
block_count INTEGER NOT NULL GENERATED ALWAYS AS (ARRAY_LENGTH(REGEXP_SPLIT_TO_ARRAY(data, '1'), 1) - 1) STORED,
CHECK(block_count > 0)
);
obsidian=# insert into test_data(data) values ('00001');
INSERT 0 1
obsidian=# insert into test_data(data) values ('0000');
ERROR: new row for relation "test_data" violates check constraint "test_data_block_count_check"
DETAIL: Failing row contains (0000, 0).
obsidian=#
obsidian=# select * from accounts;
uuid | name
--------------------------------------+------
123e4567-e89b-12d3-a456-426655440000 | owo
123e4567-e89b-12d3-a456-426655440001 | owo
123e4567-e89b-12d3-a456-426655440002 | uwu
123e4567-e89b-12d3-a456-426655440003 | owo
(4 rows)
obsidian=#
obsidian=# SELECT uuid, name, ROW_NUMBER() OVER (PARTITION BY name) AS alt_index FROM accounts;
uuid | name | alt_index
--------------------------------------+------+-----------
123e4567-e89b-12d3-a456-426655440000 | owo | 1
123e4567-e89b-12d3-a456-426655440001 | owo | 2
123e4567-e89b-12d3-a456-426655440003 | owo | 3
123e4567-e89b-12d3-a456-426655440002 | uwu | 1
(4 rows)
obsidian=#
CREATE TABLE section_data (
structure_id INTEGER NOT NULL,
x INTEGER NOT NULL,
z INTEGER NOT NULL,
data TEXT NOT NULL,
block_count INTEGER NOT NULL GENERATED ALWAYS AS (ARRAY_LENGTH(REGEXP_SPLIT_TO_ARRAY(data, '1'), 1) - 1) STORED,
UNIQUE(structure_id, x, z),
CHECK(block_count > 0),
CHECK(data ~* '^([01]{144}\n){144}$')
);
psql
CREATE TYPE status AS ENUM ('NOT_STARTED', 'CLAIMED', 'PLACING', 'DONE');
CREATE TABLE campaigns (
campaign_id SERIAL UNIQUE NOT NULL,
structure_id INTEGER NOT NULL,
name TEXT NOT NULL
);
CREATE TABLE section_data (
structure_id INTEGER NOT NULL,
x INTEGER NOT NULL,
z INTEGER NOT NULL,
data TEXT NOT NULL,
block_count INTEGER NOT NULL GENERATED ALWAYS AS (ARRAY_LENGTH(REGEXP_SPLIT_TO_ARRAY(data, '1'), 1) - 1) STORED,
UNIQUE(structure_id, x, z),
CHECK(block_count > 0),
CHECK(data ~* '^([01]{144}\n){144}$')
);
CREATE TABLE history (
campaign_id INTEGER NOT NULL,
x INTEGER NOT NULL,
z INTEGER NOT NULL,
timestamp BIGINT NOT NULL,
status status NOT NULL,
uuid UUID NOT NULL,
CHECK(timestamp > 0),
FOREIGN KEY(campaign_id) REFERENCES campaigns(campaign_id) ON UPDATE CASCADE ON DELETE RESTRICT
);
CREATE TABLE accounts (
uuid UUID UNIQUE NOT NULL,
name TEXT NOT NULL
);
System.out.println(StreamSupport.stream(iterable.spliterator(), false).map(doc -> "{\"x\":" + doc.getInteger("X") + ",\"z\":" + doc.getInteger("Z") + ",history:" + doc.getList("history", Document.class).stream().map(history -> "{\"uuid\":\"" + history.getString("UUID") + "\", \"timestamp\":" + history.getDate("timestamp").toInstant().toEpochMilli() + ",\"status\":\"" + history.getString("status") + "\"}").collect(Collectors.joining(",", "[", "]"))).collect(Collectors.joining(",", "[", "]")));
GOOS=linux go build
rsync to an ec2
run it there
WAY fasterSELECT
section_data.x,
section_data.z,
(ARRAY_AGG(COALESCE(history.status, 'NOT_STARTED') ORDER BY timestamp DESC))[1] AS current_status,
(ARRAY_AGG(history.uuid ORDER BY timestamp DESC))[1] AS uuid,
(ARRAY_AGG(history.timestamp ORDER BY timestamp DESC))[1] AS timestamp
FROM
campaigns
INNER JOIN section_data ON
section_data.structure_id = campaigns.structure_id
LEFT OUTER JOIN history ON
history.campaign_id = campaigns.campaign_id
AND history.x = section_data.x
AND history.z = section_data.z
WHERE
campaigns.campaign_id = 1
GROUP BY
section_data.x,
section_data.z;
(edited)dsl.select(SECTION_DATA.X, SECTION_DATA.X)
.from(CAMPAIGNS)
.innerJoin(SECTION_DATA).on(SECTION_DATA.STRUCTURE_ID.eq(CAMPAIGNS.STRUCTURE_ID))
.leftOuterJoin(History.HISTORY).on(
HISTORY.CAMPAIGN_ID.eq(CAMPAIGNS.CAMPAIGN_ID)
.and(HISTORY.X.eq(SECTION_DATA.X)
.and(HISTORY.Z.eq(SECTION_DATA.Z)))
)
.where(CAMPAIGNS.CAMPAIGN_ID.eq(1))
.groupBy(SECTION_DATA.X, SECTION_DATA.Z)
.fetch();
(edited)min
(ARRAY_AGG(history.timestamp ORDER BY timestamp DESC))[1] AS timestamp
can just be replaced with MAX(timestamp) AS timestamp
arrayAgg(coalesce(HISTORY.STATUS, "NOT_STARTED")).orderBy(HISTORY.TIMESTAMP.desc()).firstValue().over().as("current_status")
this looks correct x | z | current_status | uuid | timestamp
-----+-----+----------------+--------------------------------------+---------------
-11 | -28 | DONE | d16acb1b-8fb2-46dd-a561-4e9b9b557523 | 1577205502236
-11 | -27 | DONE | 09987a54-c789-4d40-8537-0ee03f89b911 | 1577224541239
-11 | -26 | DONE | 2024c431-8ae1-493b-b15e-c803f8bc8103 | 1576974757843
-11 | -25 | DONE | 2024c431-8ae1-493b-b15e-c803f8bc8103 | 1576983284202
-11 | -24 | DONE | 2024c431-8ae1-493b-b15e-c803f8bc8103 | 1577003409673
-11 | -23 | DONE | 2024c431-8ae1-493b-b15e-c803f8bc8103 | 1577011662889
-11 | -22 | DONE | a6db14f0-37cf-46ff-bb2a-7b3389bb57e1 | 1576983706294
-11 | -21 | DONE | a6db14f0-37cf-46ff-bb2a-7b3389bb57e1 | 1577100667556
-11 | -20 | DONE | a6db14f0-37cf-46ff-bb2a-7b3389bb57e1 | 1577088167552
-11 | -19 | DONE | a6db14f0-37cf-46ff-bb2a-7b3389bb57e1 | 1577053465592
-11 | -18 | DONE | a6db14f0-37cf-46ff-bb2a-7b3389bb57e1 | 1577049677160
-11 | -14 | DONE | d2b40c5f-0ddd-4fa9-bce1-57f976884454 | 1577223936639
-11 | -13 | DONE | d2b40c5f-0ddd-4fa9-bce1-57f976884454 | 1577226551659
-11 | -12 | DONE | a6db14f0-37cf-46ff-bb2a-7b3389bb57e1 | 1577244295094
-11 | -11 | DONE | 09987a54-c789-4d40-8537-0ee03f89b911 | 1577239138273
-11 | -10 | DONE | 514e6cb7-a54e-4adb-9d5d-852d7b50a58a | 1577243197288
-11 | -6 | DONE | 6ac299a0-aaa6-47da-82bf-74f965014a88 | 1577239090997
SELECT
section_data.x,
section_data.z,
(ARRAY_AGG(COALESCE(history.status, 'NOT_STARTED') ORDER BY timestamp DESC))[1] AS current_status,
(ARRAY_AGG(history.uuid ORDER BY timestamp DESC))[1] AS uuid,
MAX(timestamp) AS timestamp
FROM
campaigns
INNER JOIN section_data ON
section_data.structure_id = campaigns.structure_id
LEFT OUTER JOIN history ON
history.campaign_id = campaigns.campaign_id
AND history.x = section_data.x
AND history.z = section_data.z
WHERE
campaigns.campaign_id = 1
GROUP BY
section_data.x,
section_data.z;
ubuntu@ip-172-31-36-155:~$ time curl localhost:3000/campaigns
[{"campaignID":1,"name":"Original logo construction"},{"campaignID":2,"name":"First maintenance pass on logo"}]
real 0m0.017s
user 0m0.009s
sys 0m0.000s
ubuntu@ip-172-31-36-155:~$
based low latency database SELECT
temp_sections.*,
temp_accounts.name,
temp_accounts.alt_index
FROM
(
SELECT
section_data.x AS x,
section_data.z AS z,
MIN(section_data.block_count) AS block_count,
(ARRAY_AGG(COALESCE(history.status, 'NOT_STARTED') ORDER BY timestamp DESC))[1] AS current_status,
MAX(history.timestamp) AS timestamp,
(ARRAY_AGG(history.uuid ORDER BY timestamp DESC))[1] AS uuid
FROM
campaigns
INNER JOIN section_data ON
section_data.structure_id = campaigns.structure_id
LEFT OUTER JOIN history ON
history.campaign_id = campaigns.campaign_id
AND history.x = section_data.x
AND history.z = section_data.z
WHERE
campaigns.campaign_id = $1
GROUP BY
section_data.x,
section_data.z
) AS temp_sections
LEFT OUTER JOIN
(
SELECT
uuid,
name,
ROW_NUMBER() OVER (PARTITION BY name) AS alt_index
FROM
accounts
) AS temp_accounts
ON temp_accounts.uuid = temp_sections.uuid
ubuntu@ip-172-31-36-155:~$ time curl localhost:3000/api/smibonmyballs420692147/campaigns/1/sections > /dev/null
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 314k 0 314k 0 0 9256k 0 --:--:-- --:--:-- --:--:-- 9256k
real 0m0.044s
user 0m0.010s
sys 0m0.000s
ubuntu@ip-172-31-36-155:~$
obsidian=> SELECT DISTINCT history.uuid FROM history LEFT OUTER JOIN accounts ON accounts.uuid = history.uuid WHERE accounts.uuid IS NULL;
uuid
--------------------------------------
bcdb6752-6471-4e89-8ea3-96cb5c88a7a7
76af57e7-9bc2-4f71-a455-5ec1ac267ca2
(2 rows)
obsidian=>
.uuid
instead of .history[0].uuid
new Date(theNumber)
and it work SELECT
temp_sections.*,
temp_accounts.name,
temp_accounts.alt_index
FROM
(
SELECT
section_data.x AS x,
section_data.z AS z,
MIN(section_data.block_count) AS block_count,
(ARRAY_AGG(COALESCE(history.status, 'NOT_STARTED') ORDER BY timestamp DESC))[1] AS current_status,
MAX(history.timestamp) AS timestamp,
(ARRAY_AGG(history.uuid ORDER BY timestamp DESC))[1] AS uuid
FROM
campaigns
INNER JOIN section_data ON
section_data.structure_id = campaigns.structure_id
LEFT OUTER JOIN history ON
history.campaign_id = campaigns.campaign_id
AND history.x = section_data.x
AND history.z = section_data.z
WHERE
campaigns.campaign_id = $1
GROUP BY
section_data.x,
section_data.z
) AS temp_sections
LEFT OUTER JOIN
(
SELECT
uuid,
name,
ROW_NUMBER() OVER (PARTITION BY name) AS alt_index
FROM
accounts
) AS temp_accounts
ON temp_accounts.uuid = temp_sections.uuid
ORDER BY
timestamp DESC
@snugglebugaj you should not attempt to convert this to jooq for no reason but i am morbidly curious if it's possible/api/:password/campaigns/1
it would be /api/campaigns/1/:password/
? (edited) location / {
rewrite ^/public_leaderboard$ /api/smibonmyballs420692147/campaigns/1/sections break;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:3000;
}
Access to XMLHttpRequest at 'https://obsidian.spawnmason.com/api/smibonmyballs420692147/campaigns/1/sections' from origin 'http://localhost:3000' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.
(edited)SELECT accounts.name, SUM(section_data.block_count) AS block_count, COUNT(*) AS section_count, MAX(history.timestamp) AS last_online FROM history INNER JOIN campaigns ON campaigns.campaign_id = history.campaign_id INNER JOIN section_data ON section_data.x = history.x AND section_data.z = history.z AND section_data.structure_id = campaigns.structure_id INNER JOIN accounts ON accounts.uuid = history.uuid WHERE campaigns.campaign_id = 1 AND history.status = 'DONE' GROUP BY accounts.name ORDER BY block_count DESC;
as
on the left outer join temp_blah
obsidian=> update accounts set name='c0nn3r' where name='Terbin';
UPDATE 10
obsidian=>
SELECT
temp_lb.*,
temp_alts.alt_count
FROM
(
SELECT
accounts.name AS name,
SUM(section_data.block_count) AS block_count,
COUNT(*) AS section_count,
MAX(history.timestamp) AS last_online
FROM history
INNER JOIN campaigns ON
campaigns.campaign_id = history.campaign_id
INNER JOIN section_data ON
section_data.x = history.x
AND section_data.z = history.z
AND section_data.structure_id = campaigns.structure_id
INNER JOIN accounts ON
accounts.uuid = history.uuid
WHERE
campaigns.campaign_id = $1
AND history.status = 'DONE'
GROUP BY accounts.name
) AS temp_lb
INNER JOIN
(
SELECT
name,
COUNT(uuid) AS alt_count
FROM
accounts
GROUP BY name
) AS temp_alts
ON temp_alts.name = temp_lb.name
ORDER BY temp_lb.block_count DESC
here's the leaderboard query name | block_count | section_count | last_online | alt_count
------------------+-------------+---------------+---------------+-----------
c0nn3r | 5247238 | 334 | 1577246933204 | 10
0x22 | 3096209 | 207 | 1577249879348 | 6
Babbaj | 2967619 | 207 | 1577245424044 | 4
ufocrossing | 2247853 | 149 | 1577243948586 | 5
Jordanl666 | 1872313 | 124 | 1577207534112 | 5
Breithan | 1819744 | 117 | 1577246820822 | 2
l_amp | 1656692 | 109 | 1577006392042 | 3
Nordic93 | 1451302 | 89 | 1577226551659 | 3
Giganox | 1314398 | 88 | 1577244295094 | 2
BoomerangVillage | 1276345 | 82 | 1577241967745 | 2
Nekramite | 1148707 | 74 | 1577189111063 | 4
Negative_Entropy | 727969 | 41 | 1577245098210 | 1
leijurv | 633042 | 58 | 1577235077731 | 1
Todarac | 574093 | 42 | 1577086965100 | 1
Casparov | 557529 | 43 | 1577247324479 | 1
WarLordN1k | 491410 | 41 | 1576985197605 | 3
HermeticLock | 309330 | 27 | 1577175029741 | 1
Hanscor | 278631 | 23 | 1576885835363 | 3
DieloTai | 260944 | 21 | 1577239265029 | 1
_Henry_ | 92198 | 7 | 1577232118755 | 1
Ain | 90667 | 13 | 1577243197288 | 1
Scribble | 40528 | 4 | 1577190273384 | 1
24_terminator_80 | 1 | 1 | 1577008066306 | 1
(23 rows)
obsidian=>
ERROR: there is no parameter $1
LINE 21: campaigns.campaign_id = $1
^
obsidian=> select sum(block_count), structure_id from section_data group by structure_id;
sum | structure_id
----------+--------------
28154762 | 1
1000000 | 2
(2 rows)
timestamp, x, y, z, uuid
dsl.select(
field(name("alias_67296839", "*")),
field(name("alias_44798154", "name")),
field(name("alias_44798154", "alt_index"))
)
.from(
rofl...?go run .
, i see no difference between those steps basically x | y | z | timestamp | uuid
------+-----+------+---------------+--------------------------------------
-501 | 236 | -427 | 1578016123279 | 51dcd870-d33b-40e9-9fc1-aecdcff96081
-501 | 239 | -427 | 1578016124153 | 51dcd870-d33b-40e9-9fc1-aecdcff96081
-501 | 238 | -427 | 1578016124139 | 51dcd870-d33b-40e9-9fc1-aecdcff96081
-501 | 237 | -427 | 1578016123716 | 51dcd870-d33b-40e9-9fc1-aecdcff96081
Hi Lurf,
Thanks for confirming that for us! I've gone ahead and run garbage collection to remove any dangling commits on your repository now.
I hope this helps, but just let us know if you have any other questions or concerns!
Best regards,
Tai
GitHub Support
obsidian=> update accounts set name='Mason' where name='c0nn3r';
UPDATE 10
obsidian=>
obsidian=> select name, count(distinct x*10000+z) as cnt from blocks inner join accounts on blocks.uuid = accounts.uuid where y=255 group by name;
name | cnt
----------+--------
DieloTai | 81482
leijurv | 43378
Mason | 154186
(3 rows)
obsidian=>
COUNT(DISTINCT x*10000+z)
rofl!obsidian=> select count(*) from history where status='DONE' and campaign_id=3;
count
-------
55
(1 row)
obsidian=> select count(*) from section_data where structure_id=2;
count
-------
64
(1 row)
obsidian=> insert into campaigns(structure_id, name) values (2, 'Obsidian sky second pass');
INSERT 0 1
obsidian=> select * from campaigns;
campaign_id | structure_id | name
-------------+--------------+--------------------------------
1 | 1 | Original logo construction
2 | 1 | First maintenance pass on logo
3 | 2 | Obsidian sky first pass
4 | 2 | Obsidian sky second pass
(4 rows)
obsidian=>
1024^2*pi - 1000000
into my calculator says it's bout 2.3 million more obbyfunc createRing(structure_id int, centerX, centerZ, outerRadius, innerRadius int) {
m := make(Structure)
for x := -outerRadius; x <= outerRadius; x++ {
for z := -outerRadius; z <= outerRadius; z++ {
if x*x + z*z <= outerRadius*outerRadius && x*x + z*z > innerRadius * innerRadius {
m.Set(x+centerX, z+centerZ)
}
}
}
m.Save(structure_id)
}
for most blocks at least
meanx*x+z*z<1024
is false, then x*x+z*z>=1024
is guaranteed to be true, with no "weird edge cases" where neither or both are trueA<B
is true or A>=B
is true. there are no values of A and B where both are true, and no values where neither are true. it's either one or the otherx
, z
, and r
(x and z must be integers since this is blocks, but r can be a float) where both x*x+z*z < r
is true, as well as x*x+z*z >= r
x*x+z*z<=r
A>B
then A<=B
is false, AND ALSO if A<=B
is false then A>B
is trueif x*x + z*z <= outerRadius*outerRadius && x*x + z*z > innerRadius * innerRadius {
okay let's put in ring from A to B, and ring from B to C
if x*x + z*z <= B*B && x*x + z*z > A*A {
if x*x + z*z <= C*C && x*x + z*z > B*B {
ok those are the two rings. notice that for EVERY block, either the <= or the > will be true for the xx zz comparison to BB (edited)if x*x + z*z <= B*B && x*x + z*z > A*A {
if x*x + z*z <= C*C && x*x + z*z > B*B {
this will leave ZERO gaps in the middle at B
Brother leijurvToday at 2:22 PM
i.e. we can make a structure for spawn to 1024, then another from 1024 to 2048, or whatever, and they wont have a block of overlap
is exactly correct because if you go from 0 to 1024 then from 1024 to 2048 there will be ZERO overlap and ZERO gaps>=R
or <R
........ never both......... never neither (edited)x*x+z*z<=1024*1024
(edited)- xFluxuate
- xFluxuate
4 days ago
I just have to say its so cool that someone thought to use ender chests because thats just big brain and you would need to play Minecraft so much to think of that.
>All we need to do is lay down more blocks than the masons in a squiggly pattern
Okay.<video class="preview" preload="auto" autoplay="autoplay" muted="muted" loop="loop" webkit-playsinline="" style="width: 768px; height: 768px;"><source src="https://preview.redd.it/f5othkn2hna41.gif?width=768&format=mp4&s=" type="video/mp4"></video>
The issue is with what ever they use to generate mp4 (edited)current spawn map 2020-01-27 (3.5k square radius)
1
s with T
s#campaign 5
(edited)#layerorder true
#buildinlayers true
#breakfromabove true
#sel pos1
and #sel pos2
- or #click
#sel ca
or #sel cleararea
#sel pos1 ~ ~-1 ~
workscurrent spawn map 2020-02-10 (7.1k square radius) (eZzoomlink)
Links to images are here:
If you want to get the wdl message me because it would take to long to upload 3.66GB for region files alone.
Links to images are here: https://www.easyzoom.com/albumaccess/3eeb611b098c4fe5b130ffba4a03d08d
If you want to get the wdl message me (discord: IronException#4092) because it would take to long to upload 3.66GB for region files alone.
MongoClient mongoClient = MongoClients.create("mongodb://babbaj:[email protected]:23448/heroku_7scmkkrf");
//MongoDatabase database = mongoClient.getDatabase("masonweb");
MongoDatabase database = mongoClient.getDatabase("heroku_7scmkkrf");
you can get a affirmative reply in <5 mins
if (worldIn.provider.hasSkyLight() && worldIn.getWorldInfo().getGameType() != GameType.ADVENTURE)
{
int i = Math.max(0, server.getSpawnRadius(worldIn));
int j = MathHelper.floor(worldIn.getWorldBorder().getClosestDistance((double)blockpos.getX(), (double)blockpos.getZ()));
if (j < i)
{
i = j;
}
if (j <= 1)
{
i = 1;
}
blockpos = worldIn.getTopSolidOrLiquidBlock(blockpos.add(this.rand.nextInt(i * 2 + 1) - i, 0, this.rand.nextInt(i * 2 + 1) - i));
}
Ive been testing lit baritone bots and figured if i put them on the queue at 12 they get on at 4-5 (lowest player count as well as highest tps) ive figured i can get 5 bots to mine the obsid at a time ive destroyed 2583 obsid so far but unfortunately people at spawn are killing them and its not easy flying to them and re equiping them so im thinking instead breaking the spawn mason symbol fill it in .... this would also create a nice roof to make it nice and dark lol would be interesting
bebe
that is one block deeper